Swift File Manager 三种文件路径查找方法对比
目录
1. 引言
在File Manager种有三种文件路径的查找方法:NSSearchPathForDirectoriesInDomains(后文简称为NSSearch)、urls和url。虽然官方文档中有写到“应该考虑使用 FileManager的urls(for:in:)和url(for:in:appropriateFor:create:)作为首选格式”,但我个人认为NSSearch仍有用武之地,比如:在需要返回字符串格式的路径时,使用NSSearch更方便。以下内容根据官方文档对这三种方法进行一个简短的对比,以便在开发过程中有针对性的取用。
2. 三种文件路径查找方法
2. 1 NSSearchPathForDirectoriesInDomains(::_
该方法返回一个包含指定域名的目录树的字符串的字典。
func NSSearchPathForDirectoriesInDomains(
_ directory: FileManager.SearchPathDirectory,
_ domainMask: FileManager.SearchPathDomainMask,
_ expandTilde: Bool
) -> [String]
2.2 urls(for:in:)
该方法返回一个包含指定域名的 URL 的数组。
func urls(
for directory: FileManager.SearchPathDirectory,
in domainMask: FileManager.SearchPathDomainMask
) -> [URL]
2.3 url(for:in:appropriateFor:create:)
该方法返回一个 URL,可以用于查找指定文件夹的路径。
func url(
for directory: FileManager.SearchPathDirectory,
in domain: FileManager.SearchPathDomainMask,
appropriateFor url: URL?,
create shouldCreate: Bool
) throws -> URL
Reference
FileManager | Apple Developer Documentation
NSSearchPathForDirectoriesInDomains(_:_:_ | Apple Developer Documentation
FileManager.SearchPathDirectory | Apple Developer Documentation
urls(for:in:) | Apple Developer Documentation
url(for:in:appropriateFor:create:) | Apple Developer Documentation
Swift File Manager 三种文件路径查找方法对比的更多相关文章
- File类三种得到路径的方法
转: File类三种得到路径的方法 2010年11月29日 20:37:00 ssyan 阅读数:27123 标签: filemicrosoftstringexceptionwindowsunix ...
- 在Python中使用glob模块查找文件路径的方法
在Python中使用glob模块查找文件路径的方法 glob模块是最简单的模块之一,内容非常少.用它可以查找符合特定规则的文件路径名.跟使用windows下的文件搜索差不多.查找文件只用到三个匹配符: ...
- Objective-C:三种文件导入的方式以及atomic和nonatomic的区别
一.三种文件导入的方式比较: 类的前项声明@class.import.include: 1.采用@class 类名的方式,它会告诉编译器有这么一个类,目前不需要知道它内部的实例变量和方法是如何定义 ...
- Objective-C:三种文件导入的方式比较
三种文件导入的方式比较: 类的前项声明@class.import.include: 1.采用@class 类名的方式,它会告诉编译器有这么一个类,目前不需要知道它内部的实例变量和方法是如何定义 ...
- Oracle数据库三种标准的备份方法
Oracle数据库的三种标准的备份方法: 1.导出/导入(EXP/IMP). 2.热备份. 3.冷备份. 注释:导出备件是一种逻辑备份,冷备份和热备份是物理备份. 一.导出/导入(Export/Imp ...
- 关于 .NET 在不同操作系统中 IO 文件路径拼接方法结升级 .NET 7 后注意到的一个小坑
.NET 现在支持跨平台这件事情已经是众所周知的特点了,虽然平台整体支持跨平台了,但是我们的代码如果真的想要实现跨平台运行其实还是有些小细节要注意的,今天想要记录分享的就是关于 文件I/O操作时路径的 ...
- Oracle11g 修改数据文件路径的方法
Oracle 修改数据文件路径的方法 1. 关闭数据库,然后启动至mount状态 sqlplus / as sysdba shutdown immediate startup mount 2. 修 ...
- iOS 三种收起键盘的方法
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...
- 【读书笔记】iOS-开发技巧-三种收起键盘的方法
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...
- Android中获取文件路径的方法总结及对照
最近在写文件存贮,Android中获取文件路径的方法比较多,所以自己也很混乱.找了好几篇博客,发现了以下的路径归纳,记录一下,以备不时之需 Environment.getDataDirectory() ...
随机推荐
- 如何在windows系统下下载、安装python程序及集成开发环境PyCharm
1.python下载 python下载官网: https://www.python.org/ http://python.p2hp.com/ 中文网 点击进入官网,进入window下载页面. http ...
- KingabseES执行计划-分区剪枝(partition pruning)
概述 分区修剪(Partition Pruning)是分区表性能的查询优化技术 .在分区修剪中,优化器分析SQL语句中的FROM和WHERE子句,以在构建分区访问列表时消除不需要的分区.此功能使数据库 ...
- #随机#CF1198F GCD Groups 2
题目 将 \(n\) 个数分为两组,使得两组的GCD都为1,求具体的分组情况 分析 考虑直接打乱 \(n\) 个数,如果能使第一组GCD减小就减小,否则丢到第二组, 由于打乱后出错的概率会减小,所以r ...
- HarmonyOS NEXT调优工具Smart Perf Host高效使用指南
在软件开发的过程中,很多开发者都经常会遇到一些性能问题,比如应用启动慢.点击滑动卡顿.应用后台被杀等,想要解决这些问题势必需要收集大量系统数据.而在收集数据的过程中,开发者则需要在各种工具和命令之 ...
- 开发指导—利用组件&插值器动画实现HarmonyOS动效
一. 组件动画 在组件上创建和运行动画的快捷方式.具体用法请参考通用方法. 获取动画对象 通过调用animate方法获得animation对象,animation对象支持动画属性.动画方法和动画事件. ...
- 新手的登录qsnctfwp
打开登录界面 按要求以普通用户 user 的身份,通过密码 password 登录 使用 BurpSuite 拦截登录情况 在获取(GET)登录结果页面时,修改 Cookie 中的 username ...
- UML 哲学之道——领域模型[四]
前言 简单整理一下领域模型. 正文 领域模型是对领域内的概念类或现实中的对象的可视化表示 领域模型也称概念模型.领域对象模型和分析对象模型 领域模型是可以在业务建模科目中创建的制品之一 领域模型是up ...
- keystore 生成密钥
前言 在安卓中,我们需要生存keystore来处理我们的证书: 我们很幸运在keystore中,在java中的bin下,已经有了keytool工具了,感谢java社区工作者. 正文 在命令窗口中使用k ...
- unity 3d导出安卓包时报错:A failure occurred while executing com.android.build.gradle.internal.tasks.workers$actionfacade see the console for details
unity 3d导出安卓包时报错:A failure occurred while executing com.android.build.gradle.internal.tasks.workers$ ...
- Oracle 简单的创建一个定时任务job
Oracle 简单的创建一个定时任务job Oracle 简单的创建一个定时任务job 没有什么前置步骤,无非就是把存储过程或者SQL提前写好,就不说了,直接执行一下下面的语句即可创建一个job de ...