2017-09-20 35 views
0

我想打开.txt文件并将内容保存为字符串。 我尝试这样做:无法打开文件“xxx”,因为没有这样的文件

let path = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("xxx.txt") 
var contentString = try String(contentsOfFile: path.absoluteString) 
print(path) 

打印结果:

file:///Users/Username/Documents/xxx.txt 

但我得到的错误:

The file “xxx.txt” couldn’t be opened because there is no such file 

该文件是100%可

注意:我的工作与迅速4 macOS

+0

沙盒被启用? – Raymond

+0

不,我禁用了这个 – Ghost108

回答

3

path变量是一个URL,并path.absoluteString回报 的URL的字符串表示(在你的情况下,字符串 "file:///Users/Username/Documents/xxx.txt"),而不是基本的文件路径 "/Users/Username/Documents/xxx.txt"

使用path.path是一个可能的解决方案:

let path = ... // some URL 
let contentString = try String(contentsOfFile: path.path) 

,但更好的方法是避免了转换和使用基于URL的 方法:

let path = ... // some URL 
let contentString = try String(contentsOf: path) 
1

thx,我解决了我的问题。 我不得不改用。路径.absoluteString的:

var contentString = try String(contentsOfFile: path.path) 
相关问题