Apple文件夹路径FileManager.default.urls
Apple文件夹路径FileManager.default.urls

Apple文件夹路径FileManager.default.urls

FileManager.default.urls(for:in:) 中的 .SearchPathDirectory 是 Apple 提供的一套标准用户文件夹路径标识,配合 .userDomainMask 或 .localDomainMask 等参数,可以定位常见的 macOS 系统目录,如「桌面」「文稿」「下载」等。

相比 FileManager.default.temporaryDirectory 这类直接获取某一类路径的 API,.SearchPathDirectory 提供了更丰富、系统化的目录访问方式。

FileManager.default.temporaryDirectory  // 获取的目录少
let downloadsURL = FileManager.default.urls(for: .downloadsDirectory, in: .userDomainMask).first! // 获取的目录多

下面是对 SearchPathDirectory 中所有枚举值的讲解(主要以 macOS 为主):

SearchPathDirectory枚举值

1、应用相关目录

1、.applicationDirectory:安装在系统中的应用程序目录(比如 /Applications)。

2、.demoApplicationDirectory:系统中包含 demo 应用的目录(很少用)。

3、.developerApplicationDirectory:系统中开发者提供的 App 所在目录(如 Xcode 自带工具)。

4、.adminApplicationDirectory:管理员用户安装的 App 所在目录。

5、.applicationSupportDirectory:App 支持文件(如配置、缓存、资源)的存放目录,通常是 App 在这里写入数据,比如 ~/Library/Application Support/YourApp。

6、.applicationScriptsDirectory供 App Sandboxing 使用的脚本目录(如 Safari 扩展脚本)。

2、用户与文档目录

1、.userDirectory:所有用户的根目录,例如 /Users。

2、.documentDirectory:用户的文稿目录,即 ~/Documents。

3、.desktopDirectory:用户的桌面目录 ~/Desktop。

4、.downloadsDirectory:用户的下载目录 ~/Downloads。

5、.sharedPublicDirectory:用户共享的公共目录 ~/Public。

6、.picturesDirectory:用户的图片目录 ~/Pictures。

7、.musicDirectory:用户的音乐目录 ~/Music。

8、.moviesDirectory:用户的视频目录 ~/Movies。

3、系统资源目录

1、.libraryDirectory:用户的 Library 目录 ~/Library(不是系统的 /Library)。

2、.developerDirectory:开发者资源目录,比如包含 Xcode 工具的 /Developer(如果存在)。

3、.documentationDirectory:系统或 App 安装的文档目录。

4、.preferencePanesDirectory:系统偏好设置面板所在目录 /Library/PreferencePanes。

5、.coreServiceDirectory:包含系统核心服务的目录,比如 /System/Library/CoreServices。

6、.inputMethodsDirectory:输入法目录,通常在 /Library/Input Methods 或 ~/Library/Input Methods。

7、.printerDescriptionDirectory:打印机描述文件所在目录 /Library/Printers/PPDs。

4、缓存 & 临时

1、.cachesDirectory:用户缓存目录 ~/Library/Caches。

2、.autosavedInformationDirectory:自动保存信息目录,比如 TextEdit 自动恢复文件的地方。

3、.itemReplacementDirectory:App 在替换文件时用于临时目录(iCloud 文档同步常用)。

4、.trashDirectory:用户垃圾桶目录,macOS 10.8+ 才支持,路径可能是 ~/.Trash。

5、其他

1、.allApplicationsDirectory:所有 App 安装路径集合(系统 + 用户),用于全局搜索。

2、.allLibrariesDirectory:所有 Library 目录(系统 + 用户),不常直接使用。

使用示例

获取文档目录的URL路径:

let url = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first
print("文档目录:\(url?.path ?? "")")

.documentDirectory:表示“文档”目录,也就是 Documents 文件夹。这个目录是专门用来存储用户可以访问的文档文件的。

.userDomainMask:表示在用户的主目录下查找文件夹,通常就是应用的沙盒区域(例如 ~/Documents)。

该方法返回一个包含 URL 的数组,因为可能存在多个匹配的路径(但通常,Documents 目录只有一个)。

.first:调用了 first 属性,意在从返回的 URL 数组中获取第一个 URL(通常也是唯一的一个)。

通过使用 first,可以直接得到 Documents 目录的 URL(如果存在),以避免直接操作数组的繁琐性。

总结

FileManager.default.temporaryDirectory 是专门获取当前用户的临时目录,一般路径为 /var/folders/…/T。

NSTemporaryDirectory() 也可获取相同路径,但返回 String 而非 URL。

FileManager.default.urls(for:in:) 返回的是 [URL],有些目录可能返回多个路径(比如 .libraryDirectory 有用户级、系统级别的)。

相关文章

1、Swift 管理文件的FileManager类:https://fangjunyu.com/2024/11/03/swift-%e7%ae%a1%e7%90%86%e6%96%87%e4%bb%b6%e7%9a%84filemanager%e7%b1%bb/

   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注