diff --git a/client.go b/client.go index d96ad87..6539c45 100644 --- a/client.go +++ b/client.go @@ -5,7 +5,9 @@ import ( "encoding/xml" "io" "net/http" + "net/url" "os" + pathpkg "path" "strings" "sync" "time" @@ -136,9 +138,11 @@ func (c *Client) ReadDir(path string) ([]os.FileInfo, error) { if p := getProps(r, "200"); p != nil { f := new(File) - - f.name = p.Name - + if ps, err := url.PathUnescape(r.Href); err == nil { + f.name = pathpkg.Base(ps) + } else { + f.name = p.Name + } f.path = path + f.name f.modified = parseModified(&p.Modified) f.etag = p.ETag