尽管我正确保存了文件并看到了文件,但为什么仍无法获得filePath?

时间:2019-05-10 19:08:44

标签: swift nsdocumentdirectory

我正在尝试写入/读取捆绑包,并且使用了StackOverflow的以下引用:

How to access file included in app bundle in Swift?

看起来不错的代码,应该可以正常工作。

if let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).last {
   let fileURL = documentsDirectory.appendingPathComponent("file.txt")
   do {
       if try fileURL.checkResourceIsReachable() {
           print("file exist")
       } else {
           print("file doesnt exist")
           do {
            try Data().write(to: fileURL)
           } catch {
               print("an error happened while creating the file")
           }
       }
   } catch {
       print("an error happened while checking for the file")
   }
}

要获取文件路径:

var filePath = Bundle.main.url(forResource: "file", withExtension: "txt")

我可以保存文件,但是不知何故我找不到文件路径

var filePath = Bundle.main.url(forResource: "file", withExtension: "txt")

我无法获得任何扩展名。我什至可以在XCode的``设备''下的应用程序数据中看到保存的文件,这看起来不错,但filePath找不到它。你能帮我吗?

1 个答案:

答案 0 :(得分:0)

好吧,让我们这样看:

  • Bundle.main是您的应用; Bundle.main.url在应用程序的内部中查找文件。 (这就是为什么链接的答案称为“如何在Swift中访问应用程序包中包含的文件 ?”的原因)

  • documentDirectory在应用程序的外部之外,即(获取此文件),它是Documents目录。

因此,您要保存应用程序外部文件,然后在应用程序中查找内部文件。那不是那里,所以那行不通。