goPaxan/ftpActions.go

58 lines
867 B
Go

package paxan
import (
"io"
"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
}
for _, file := range files {
if file.Type != ftp.EntryTypeFile {
continue
}
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
}