我正在尝试写入/读取捆绑包,并且使用了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
找不到它。你能帮我吗?
答案 0 :(得分:0)
好吧,让我们这样看:
Bundle.main
是您的应用; Bundle.main.url
在应用程序的内部中查找文件。 (这就是为什么链接的答案称为“如何在Swift中访问应用程序包中包含的文件 ?”的原因)
documentDirectory
在应用程序的外部之外,即(获取此文件),它是Documents目录。
因此,您要保存应用程序外部文件,然后在应用程序中查找内部文件。那不是那里,所以那行不通。