diff --git a/client_test.go b/client_test.go index a713556..161dc11 100644 --- a/client_test.go +++ b/client_test.go @@ -96,6 +96,19 @@ func testConn(t *testing.T, disableEPSV bool) { r.Close() } + fileSize, err := c.FileSize("tset") + if err != nil { + t.Error(err) + } + if fileSize != 14 { + t.Errorf("file size %q, expected %q", fileSize, 14) + } + + fileSize, err = c.FileSize("not-found") + if err == nil { + t.Fatal("expected error, got nil") + } + err = c.Delete("tset") if err != nil { t.Error(err) diff --git a/ftp.go b/ftp.go index 219d987..03dd7c7 100644 --- a/ftp.go +++ b/ftp.go @@ -408,13 +408,13 @@ func (c *ServerConn) CurrentDir() (string, error) { } // FileSize issues a SIZE FTP command, which Returns the size of the file -func (c *ServerConn) FileSize(path string) (int, error) { +func (c *ServerConn) FileSize(path string) (int64, error) { _, msg, err := c.cmd(StatusFile, "SIZE %s", path) if err != nil { return 0, err } - size, err := strconv.Atoi(msg) + size, err := strconv.ParseInt(msg, 10, 64) if err != nil { return 0, err }