【Kotlin】Android-WebDAV协议的常用方法一览

Android端使用Sardine库以及OkHttp库进行基于WebDAV协议的网络通信。

国内首推坚果云作为WebDAV服务器(免费稳定,个人够用)

使用WebDAV的具体教程请参考使用WebDAV协议云存储文件​​​​​​​

目录

一、添加依赖

二、创建Sardine对象

三、创建连接,访问WebDAV服务器

四、创建空文件夹/目录

五、判断文件/文件夹是否存在

六、获取某文件夹/目录下全部文件名

七、下载文件

八、上传文件

九、移动、重命名文件

十、删除文件、文件夹

十一、存在的限制


一、添加依赖

implementation 'com.thegrizzlylabs.sardine-android:sardine-android:0.8'
implementation("com.squareup.okhttp3:okhttp:4.9.0")

二、创建Sardine对象

val sardine = OkHttpSardine()

三、创建连接,访问WebDAV服务器

sardine.setCredentials(参数1, 参数2)

参数1(String类型):云盘的账号,如"[email protected]"

参数2(String类型):云盘授权给第三方应用的专属密码(非网盘账号密码)

注:生成授权第三方密码的方法请参考坚果云官方文档

四、创建空文件夹/目录

sardine.createDirectory(参数)

 参数(String类型):文件路径,如:

"https://dav.jianguoyun.com/dav/我的坚果云/测试新建文件夹"

注1:前缀  https://dav.jianguoyun.com/dav/我的坚果云/  是固定写死的路径,此路径之后才是坚果云提供的保存个人数据的路径位置

注2:路径末尾可以加/也可以不加/

五、判断文件/文件夹是否存在

sardine.exists(参数)

 参数(String类型):文件路径,如:

"https://dav.jianguoyun.com/dav/我的坚果云/测试新建文件夹"

六、获取某文件夹/目录下全部文件名

sardine.list(参数)

参数(String类型):文件夹路径,如:

"https://dav.jianguoyun.com/dav/我的坚果云/测试新建文件夹"

注1:返回的只有文件名(文件路径),不包含文件内容!

注2:返回队列中也包含文件夹名(文件夹路径)

七、下载文件

sardine.get(参数)

参数(String类型):文件路径,如:

"https://dav.jianguoyun.com/dav/我的坚果云/测试新建文件夹/测试.txt"

注:不能下载目录,必须下载具体文件。

八、上传文件

sardine.put(参数1, 参数2)

参数1(String类型):文件路径,如:

"https://dav.jianguoyun.com/dav/我的坚果云/测试新建文件夹/测试.txt"

参数2文件内容

注1:参数1中必须注明上传文件的类型,如.txt

注2:参数2的类型有多种,如,byte[]字节数组类型file类型

九、移动、重命名文件

sardine.move(参数1, 参数2)

参数1(String类型):文件路径,如:

"https://dav.jianguoyun.com/dav/我的坚果云/测试新建文件夹1/测试1.txt"

参数2(String类型):文件路径,如:

1.移动操作:

"https://dav.jianguoyun.com/dav/我的坚果云/测试新建文件夹2/测试1.txt" 

2.重命名操作:

 "https://dav.jianguoyun.com/dav/我的坚果云/测试新建文件夹1/测试2.txt"

注:移动和重命名是同一个方法

十、删除文件、文件夹

sardine.delete(参数)

 参数1(String类型):文件路径,如:

(删除文件)"https://dav.jianguoyun.com/dav/我的坚果云/测试新建文件夹/测试.txt"

(删除文件夹)"https://dav.jianguoyun.com/dav/我的坚果云/测试新建文件夹"

十一、存在的限制

文件上传大小限制:默认上限为 500M

访问频率限制:由于WebDAV协议比较占用系统资源,免费版用户限制访问频率为每30分钟不超过600次请求。付费用户限制访问频率为每30分钟不超过1500次请求

同步目录数限制:目前坚果云的WebDAV协议单次请求文件数(包含文件和文件夹)为750个


如有疏忽遗漏之处,敬请指正

你可能感兴趣的:(Android软件开发,kotlin,android-studio,数据仓库,数据库开发)