iOS 16 之前的版本
在之前的版本中,要想获取当前沙盒目录需要用到 FileManager 这个 API,相对来说比较麻烦,函数名又比较长,很难记,我每次使用都得搜索一下才能写出来,比如我们要获取 documents 文件夹:
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
let documentsDirectory = paths[0]
print("documentsDirectory is: ", documentsDirectory)
iOS 16 版本新增功能
现在在 iOS 16 中,URL 类型上增加了一系列方法,使用文件和目录变得更加容易,比如获取 documents 文件夹,我们可以直接访问 URL 类型的静态属性 documentsDirectory 来获取:
print("documentsDirectory is: ", URL.documentsDirectory)
这个 API 变得非常方便,简单。
获取其他文件夹路径
通过查看 URL 结构文档中新增的类型属性,能看到各种路径的获取方式:
extension URL {
/// 当前文件夹
static func currentDirectory() -> URL
/// home 文件夹
static var homeDirectory: URL { get }
/// tmp 文件夹
static var temporaryDirectory: URL { get }
/// Caches 文件夹
static var cachesDirectory: URL { get }
/// 应用文件夹
static var applicationDirectory: URL { get }
/// Library 文件夹
static var libraryDirectory: URL { get }
/// 用户文件夹 (/Users/)
static var userDirectory: URL { get }
/// Documents 文件夹
static var documentsDirectory: URL { get }
/// 当前用户的桌面文件夹 (~/Desktop)
static var desktopDirectory: URL { get }
/// Application support 文件夹
static var applicationSupportDirectory: URL { get }
/// 当前用户的下载文件夹 (~/Downloads)
static var downloadsDirectory: URL { get }
/// 当前用户的 Movies 文件夹 (~/Movies)
static var moviesDirectory: URL { get }
/// 当前用户的 Music 文件夹 (~/Music)
static var musicDirectory: URL { get }
/// 当前用户的 Pictures 文件夹 (~/Pictures)
static var picturesDirectory: URL { get }
/// 当前用户的共享文件夹 (~/Public)
static var sharedPublicDirectory: URL { get }
/// 当前用户的 Trash 文件夹 (~/.Trash)
static var trashDirectory: URL { get }
/// 指定用户的 Home 文件夹
static func homeDirectory(forUser user: String) -> URL?
}
本文同步自微信公众号 “iOS新知”,每天准时分享一个新知识,这里只是同步,想要及时学到就来关注我吧!