注册 登录
主题 : 怎么将icloud中的文件下载到沙盒目录中?
级别: 侠客
UID: 609304
精华: 0
发帖: 170
可可豆: 575 CB
威望: 575 点
在线时间: 177(时)
注册时间: 2017-03-22
最后登录: 2018-10-23
0 楼:  发表于: 2018-08-02 23:32    发自: Web Page
来源于 一般提问 分类

怎么将icloud中的文件下载到沙盒目录中?   

如题,想把icloud中的文件下载到沙盒中保存下来
级别: 新手上路
UID: 210362
精华: 0
发帖: 54
可可豆: 154 CB
威望: 144 点
在线时间: 501(时)
注册时间: 2013-02-26
最后登录: 2018-09-18
1 楼:  发表于: 2018-08-03 09:28    发自: Web Page
很简单呀 NSMetadataQuery 百度 Google 一下 很多例子
级别: 骑士
UID: 623940
精华: 0
发帖: 220
可可豆: 390 CB
威望: 390 点
在线时间: 133(时)
注册时间: 2017-09-19
最后登录: 2018-10-17
2 楼:  发表于: 2018-08-03 13:46    发自: Web Page
FileManager.startDownloadingUbiquitousItem(at: url);


级别: 侠客
UID: 609304
精华: 0
发帖: 170
可可豆: 575 CB
威望: 575 点
在线时间: 177(时)
注册时间: 2017-03-22
最后登录: 2018-10-23
3 楼:  发表于: 2018-08-03 22:40    发自: Web Page
回 2楼(409xxxx) 的帖子
本地路径呢?这个方法默认把文件下载到哪里?怎么找到这个文件?
级别: 新手上路
UID: 659185
精华: 0
发帖: 1
可可豆: 1 CB
威望: 1 点
在线时间: 0(时)
注册时间: 2018-08-03
最后登录: 2018-08-03
4 楼:  发表于: 2018-08-03 22:48    发自: Web Page
l1i5karqf9
级别: 新手上路
UID: 659186
精华: 0
发帖: 1
可可豆: 1 CB
威望: 1 点
在线时间: 0(时)
注册时间: 2018-08-03
最后登录: 2018-08-03
5 楼:  发表于: 2018-08-03 23:03    发自: Web Page
mqh84bofv2
级别: 骑士
UID: 623940
精华: 0
发帖: 220
可可豆: 390 CB
威望: 390 点
在线时间: 133(时)
注册时间: 2017-09-19
最后登录: 2018-10-17
6 楼:  发表于: 2018-08-11 00:06    发自: Web Page
回 3楼(sbqios2017) 的帖子
ios的机制是这样的
iCloud上的文件,你可以访问到文件所有的属性,除了实际内容
FileManager.startDownloadingUbiquitousItem(at: url)

作用就是将实际内容下载到ios的硬盘上,下载完毕之后你才可以实际获取到它的内容。也是相当于,下载到icloud目录,并不是沙盒。沙盒需要你自己拷贝或者直接就读取icloud上的文件
级别: 侠客
UID: 609304
精华: 0
发帖: 170
可可豆: 575 CB
威望: 575 点
在线时间: 177(时)
注册时间: 2017-03-22
最后登录: 2018-10-23
7 楼:  发表于: 2018-08-11 09:43    发自: Web Page
回 6楼(409xxxx) 的帖子
谢谢你,我现在遇到的问题是把下载下来的sqlite文件,写入本地的sqlite文件时,老报错,报错提示是sqlite占用,其它类型的文件不存在这个问题。
级别: 骑士
UID: 623940
精华: 0
发帖: 220
可可豆: 390 CB
威望: 390 点
在线时间: 133(时)
注册时间: 2017-09-19
最后登录: 2018-10-17
8 楼:  发表于: 2018-08-12 20:38    发自: Web Page
回 7楼(sbqios2017) 的帖子
这个肯定的,如果你这样做,很可能是在数据库在下载的过程中读取,所以失败。

可以用文件协管类,将文件或者路径进行一个“锁定”,然后完成操作后再让自己的类读取。但是前提是,你下载到本地的时候,你必须要先将数据库文件关闭,然后下载之后再打开。

NSFileCoordinator
级别: 骑士
UID: 623940
精华: 0
发帖: 220
可可豆: 390 CB
威望: 390 点
在线时间: 133(时)
注册时间: 2017-09-19
最后登录: 2018-10-17
9 楼:  发表于: 2018-08-12 20:41    发自: Web Page
另外,你要懂得利用metadataQueryDidUpdate 这个通知,可以很大程度的帮你识别出需要处理的文件,并且哪一些已经实际下载完毕。
当实际下载完毕之后的通知,你再去处理这些文件,会比其他方式更加有效。

NSMetadataQueryUpdateChangedItemsKey
NSMetadataQueryUpdateAddedItemsKey
NSMetadataQueryUpdateRemovedItemsKey

自己搜索下github

本站内容均为本站转发,已尽可能注明出处。因未能核实来源或转发内容图片有权利瑕疵的,请及时联系本站,本站会第一时间进行修改或删除。 QQ : 3442093904

描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部