gpt4 book ai didi

string - 即使文件存在,为什么 String(contentsOfFile) 也会失败?

转载 作者:行者123 更新时间:2023-11-30 10:04:52 25 4
gpt4 key购买 nike

在下面的代码中,我尝试访问位于我的主目录中的文件0.txt。主目录的路径保存在字符串中,并在调用时将名称 0.txt 附加到其上(0 是一个引用计数器,它会随着程序的运行而更改值)运行。为了解决这个问题,我将其称为 0)。

func loadfile(counter: Int) -> String {     // counter here is assumed to be "0"
var contents = String()
var defaultpath = ("~/" as NSString).stringByExpandingTildeInPath as String
do {
contents = try String(contentsOfFile: defaultpath.stringByAppendingString(String("\(counter).txt")))
return contents
} catch {
print("For some reason, the file couldn't be accessed.")
return "failed"
}
}

但是,每次运行此代码块时,返回值都是 failed 并打印行 For some Reason, the file Couldn't be access,即使尽管 ~/0.txt 存在。有谁知道为什么会发生这种异常行为,如果是这样,我应该如何解决这个问题?

附带问题:有没有办法将 try-catch block 生成的错误打印到 stdout?

最佳答案

您需要在文件名中添加分隔符:

contents = try String(contentsOfFile: defaultpath.stringByAppendingString(String("/\(counter).txt")))

请注意文件名开头的正斜杠。 defaultPath 不以斜杠结尾。

关于string - 即使文件存在,为什么 String(contentsOfFile) 也会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36588004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com