goPaxan/ftpActions.go

59 lines
853 B
Go

package paxan
import (
"fmt"
"io"
"log"
"os"
"path/filepath"
"time"
"github.com/jlaffaye/ftp"
)
func DownloadFTP(user string, password string, path string) error {
c, err := ftp.Dial("paxan-shop.de:21", ftp.DialWithTimeout(5*time.Second))
if err != nil {
return err
}
err = c.Login(user, password)
if err != nil {
return err
}
defer c.Quit()
//c.ChangeDir("desiredDir")
files, err := c.List("/")
if err != nil {
return err
}
fmt.Printf("%v", files)
for _, file := range files {
res, err := c.Retr(file.Name)
if err != nil {
return err
}
defer res.Close()
log.Printf("Downloading %s", file.Name)
outFile, err := os.Create(filepath.Join(path, file.Name))
if err != nil {
return err
}
defer outFile.Close()
_, err = io.Copy(outFile, res)
if err != nil {
return err
}
}
return nil
}