goPaxan/ftpActions.go

58 lines
892 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
}
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
}
res.Close()
err = os.Chtimes(filepath.Join(path, file.Name), file.Time, file.Time)
}
return nil
}