【发布时间】:2019-01-23 01:51:58
【问题描述】:
我正在尝试从服务器下载文件内容,在客户端创建一个文件并将所有内容传输到该文件。我正在将文件保存到本地存储,但无法保存会抛出您无权保存在文件夹中的异常。尝试了很多东西,但无法做到。我对这个 ios 编程很陌生。请帮帮我,提前谢谢。
下面是我的代码:
let documentsUrl = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first
var fileURL : URL = URL(fileURLWithPath: documentsUrl!.path+filename)
fileURL = URL(fileURLWithPath: documentsUrl!.path+filename+".doc")
let data = NSData(contentsOf: tempLocalUrl)
do {
try data?.write(to: fileURL, options: .atomic)
} catch {
print(error,"helooooooooooooooooo")
}
我用过relativepath、absolutestring但还是不行。
这是错误:
Error Domain=NSCocoaErrorDomain Code=513 "您没有权限将文件 "DocumentsImport From IE.doc" 保存在文件夹 "0103E60B-478F-475B-A8F2-788534F5D206" 中。" UserInfo={NSFilePath=/var/mobile/Containers/Data/Application/0103E60B-478F-475B-A8F2-788534F5D206/DocumentsImport From IE.doc, NSUnderlyingError=0x1076efe90 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not allowed"}}
【问题讨论】:
-
documentsUrl来自哪里?您是如何提取该网址的? -
我已经编辑了代码,请检查@holex
-
我相信你已经发现了路径和文件名之间缺少的
/...比如.../Documents+/+Import From IE.doc,你目前没有@ 987654328@ - 最好使用addPathComponent(...)而不是连接原始字符串值...这可以帮助您避免将来出现此类故障。 -
永远不要连接字符串来构建路径。使用适当的 URL API。这解决了您的问题。
-
感谢@holex 它有效,您节省了我的时间。