【发布时间】:2018-08-09 19:18:01
【问题描述】:
我在 Stack Overflow 上搜索了一下,似乎找不到解决方案。我有:
let fileURL = URL( string: "file:///Users/me/file.txt" )
var rawDataString: String
var errorString: String?
do {
rawDataString = try String( contentsOf: fileURL!, encoding: String.Encoding.utf8 )
} catch let error as NSError {
errorString = error.description
print( errorString! )
return
}
它出错了
Error Domain=NSCocoaErrorDomain Code=257 "文件“file.txt”不能 因您无权查看而被打开。”
为所有用户读取权限:
$ ls -al file.txt
-rw-r--r--@ 1 me staff 348306 Dec 13 2016 file.txt
欢迎提出任何想法。
【问题讨论】:
-
您需要在您的应用目标功能中关闭应用沙盒。另一个选项是
NSOpenPanel让用户选择文件。 -
顺便说一句,与您的问题无关,但
String.Encoding是多余的(推断),无需将错误转换为 NSErrorencoding: .utf8 )和} catch { print(error) -
你也可以使用
URLfileURLWithPath 初始化器。您只需要删除 url 方案文件://。let fileURL = URL(fileURLWithPath: "/Users/me/file.txt" ) -
您也可以将 txt 文件拖放到您的项目中,并将其包含在您的 Bundle 中