diff --git a/webdav/webdav.go b/webdav/webdav.go index 744d2d52..b04c5dd7 100644 --- a/webdav/webdav.go +++ b/webdav/webdav.go @@ -556,7 +556,11 @@ func (h *Handler) handlePropfind(w http.ResponseWriter, r *http.Request) (status if err != nil { return err } - return mw.write(makePropstatResponse(path.Join(h.Prefix, reqPath), pstats)) + href := path.Join(h.Prefix, reqPath) + if info.IsDir() { + href += "/" + } + return mw.write(makePropstatResponse(href, pstats)) } walkErr := walkFS(ctx, h.FileSystem, depth, reqPath, fi, walkFn) diff --git a/webdav/webdav_test.go b/webdav/webdav_test.go index 46d1bb62..4daa031e 100644 --- a/webdav/webdav_test.go +++ b/webdav/webdav_test.go @@ -284,7 +284,7 @@ func TestFilenameEscape(t *testing.T) { wantDisplayName: `こんにちわ世界`, }, { name: `/Program Files/`, - wantHref: `/Program%20Files`, + wantHref: `/Program%20Files/`, wantDisplayName: `Program Files`, }, { name: `/go+lang`,