diff --git a/app/src/main/java/io/legado/app/lib/webdav/WebDav.kt b/app/src/main/java/io/legado/app/lib/webdav/WebDav.kt index de9723e7c..6f2c726e3 100644 --- a/app/src/main/java/io/legado/app/lib/webdav/WebDav.kt +++ b/app/src/main/java/io/legado/app/lib/webdav/WebDav.kt @@ -211,7 +211,10 @@ open class WebDav( .toInstant(ZoneOffset.of("+8")).toEpochMilli() } }.getOrNull() ?: 0 - val fullURL = NetworkUtils.getAbsoluteURL(baseUrl, hrefDecode) + var fullURL = NetworkUtils.getAbsoluteURL(baseUrl, hrefDecode) + if (WebDavFile.isDir(contentType, resourceType) && !fullURL.endsWith("/")) { + fullURL += "/" + } webDavFile = WebDavFile( fullURL, authorization, diff --git a/app/src/main/java/io/legado/app/lib/webdav/WebDavFile.kt b/app/src/main/java/io/legado/app/lib/webdav/WebDavFile.kt index 8ff3776aa..70b9becd6 100644 --- a/app/src/main/java/io/legado/app/lib/webdav/WebDavFile.kt +++ b/app/src/main/java/io/legado/app/lib/webdav/WebDavFile.kt @@ -16,7 +16,14 @@ class WebDavFile( ) : WebDav(urlStr, authorization) { val isDir by lazy { - contentType == "httpd/unix-directory" || resourceType.lowercase().contains("collection") + isDir(contentType, resourceType) + } + + companion object { + fun isDir(contentType: String, resourceType: String): Boolean { + return contentType == "httpd/unix-directory" + || resourceType.lowercase().contains("collection") + } } }