无法打开文件“xxx”,因为没有这样的文件

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

我想打开一个 .txt 文件并将内容保存为字符串。 我试过这个:

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% 可用

注意:我使用 swift 4 for macOS

谢谢,我解决了我的问题。 我必须使用 .path 而不是 .absoluteString:

var contentString = try String(contentsOfFile: path.path)

您的 path 变量是 URL,并且 path.absoluteString returns 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)