【问题标题】:Swift "file not found" when trying to read text file尝试读取文本文件时迅速“找不到文件”
【发布时间】:2021-02-27 05:03:20
【问题描述】:

我在这个问题上已经被困了几个小时了。我正在尝试读取文本文件并打印每一行,但我不断收到此错误:

Fatal error: 'try!' expression unexpectedly raised an error: Error Domain=NSCocoaErrorDomain Code=260 "The file “coordinates.txt” couldn’t be opened because there is no such file."

我不明白为什么会这样,因为 txt 文件就在同一目录中的 swift 文件旁边。

这是快速代码:

let filename = "coordinates.txt"
let contents = try! String(contentsOfFile: filename) // where error is occuring

let lines = contents.split(separator:"\n")

for line in lines {
     print("\(line)")
}

感谢您的帮助!

编辑:我正在 Xcode IOS 中处理此问题

【问题讨论】:

  • 你使用的是相对路径,所以你会得到奇怪的行为。我认为像这样的相对路径是相对于进程的当前工作目录(CWD env var)解析的,这可能不是您自己设置的。您应该使用绝对路径,或相对于某个已知文件夹的路径(例如用户的主文件夹、下载文件夹等)
  • 这是一个什么样的项目? IOS?苹果系统?如果是 MacOS,它是应用程序还是命令行工具?或者这只是您从终端运行的“松散”快速文件?
  • 项目在XCode IOS中
  • filename = "./coordinates.txt" 没用?如果没有,您可以在当前目录的终端中执行pwd,然后将其复制并粘贴,并将文件名附加到filename 常量的末尾。
  • 你需要从app bundle中获取文件。

标签: swift


【解决方案1】:

首先检查您是否在文本文件 (coordinates.txt) 中添加了目标

确保您的文本文件 (coordinates.txt) 添加了目标成员资格。

第二

let filename = Bundle.main.path(forResource: "coordinates", ofType: "txt")
let contents = try! String(contentsOfFile: filename)
let lines = contents.split(separator:"\n")

for line in lines {
 print("\(line)")
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多