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 }