App Specific Directory用于在iOS中存储文件



我对iOS很陌生,一直在自学网上的文章学习iOS。但是对于在iOS中下载和保存文件有一点疑问。

来自Android后台,在Android中我们可以在Android/data/com.package.name/file1下下载应用特定的文件。我尝试在iOS中同样保存文件到应用特定目录中。也像安卓希望删除文件时,应用程序卸载。所以有人可以帮助我关于这是什么是正确的目录在iOS中存储应用程序特定的文件,就像安卓和如何做到这一点。用户是否可以直接访问应用程序特定目录中的文件,或者我们需要使用加密来保护它?

在iOS中,苹果将应用限制在一组非常有限的"沙盒"中。目录(系统为你的应用程序提供的目录)

你可以访问下载目录、文档目录和缓存目录。

在谷歌上快速搜索一下,发现了这个链接,它记录了如何进入这些目录。

从链接站点中移除(非常常见的)代码:(不是我的代码,只是作为参考。)

extension UIViewController {

// Get user's documents directory path
func getDocumentDirectoryPath() -> URL {
let arrayPaths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
let docDirectoryPath = arrayPaths[0]
return docDirectoryPath
}

// Get user's cache directory path
func getCacheDirectoryPath() -> URL {
let arrayPaths = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask)
let cacheDirectoryPath = arrayPaths[0]
return cacheDirectoryPath
}

// Get user's temp directory path
func getTempDirectoryPath() -> URL {
let tempDirectoryPath = URL(fileURLWithPath: NSTemporaryDirectory(), isDirectory: true)
return tempDirectoryPath
}

}

那篇文章的作者把它作为UIViewController的扩展,这意味着UIViewController的所有实例都可以访问这些属性。我可能会让它们成为全局变量,这样我就可以在任何地方访问它们(或者是实用程序类的静态属性)。

尝试读取或写入除其中一个目录之外的任何目录将失败。(还有一个接口可以让用户访问共享文档目录和iCloud文件共享,但这超出了这个问题的范围)

最新更新