我正在处理文件下载。下载完成后,我想将下载的文件移动到apps文档目录,我的设置:
func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL) {
debugPrint("didFinishDownloadingTo: \(location)")
let documentsDirectory = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
let saveDirectory = documentsDirectory.appendingPathComponent("file1.mp4")
do {
try FileManager.default.moveItem(at: location, to: saveDirectory)
} catch {
print("didFinishDownloadingTo error \(error.localizedDescription)")
}
}
在某些时候,我想看到我下载的所有文件:
do {
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
let documentsDirectory = String(describing: paths[0])
let items = try FileManager.default.contentsOfDirectory(atPath: documentsDirectory)
for item in items {
print("Found \(item)")
}
} catch {
print("contentsOfDirectory \(error.localizedDescription)")
}
这部分抛出:
The folder “Documents” doesn’t exist.
didFinishDownloadingTo 方法没有抛出错误,所以我假设moveitem函数成功,但我不知道为什么我无法列出我的项目... 我做了一些研究,但没有结果,我不知道为什么我不能列出。
答案 0 :(得分:0)
只需打印路径并检查这些文件夹即可尝试调试。这样您就可以看到哪个步骤没有按预期工作。我认为在调试时可能更容易捕获的路径存在一个小错误。
提示:使用模拟器但不是真实设备进行调试。因为它可以让您更轻松地浏览文件夹。
希望它有所帮助。