我对 iOS 很陌生,并且一直在从互联网上的文章中自己学习 iOS。但是对在 iOS 中下载和保存文件有一点疑问。
来自 Android 背景,在 android 中我们可以在Android/data/com.package.name/file1
. 所以我试图在 iOS 中的应用程序特定目录中执行相同的保存文件。就像 Android 想要在卸载应用程序时删除文件一样。因此,任何人都可以帮助我了解 iOS 中存储应用程序特定文件的正确目录是什么,如 Android 以及如何执行此操作。用户也可以直接访问应用程序特定目录中的文件还是我们需要使用加密来保护它?
在 iOS 中,Apple 将应用程序限制为一组非常有限的“沙盒”目录(系统为您的应用程序提供的目录)。
您可以访问下载目录、文档目录和缓存目录。
一个快速的谷歌搜索发现这个链接记录了如何访问这些目录。
从链接的站点中提取(非常常见的)代码:(不是我的代码,只是包含它以供参考。)
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 文件共享,但这不在本问题的范围内)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句