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() ...
随机推荐
- SQLServer递归触发器在KES中的一次改造分析
文章概要: 某项目将数据从 SQLSERVER 迁移到 KES.其中SQLSERVER中触发器用到了 TRIGGER_NESTLEVEL() 函数,KES并不能直接支持该函数. 起初在分析该问题时想复 ...
- C++中自定义事件与委托
自定义事件,和委托其实是一类操作. 在蓝图中都表现为红色方块. 自定义事件通过DECLARE_EVENT(ClassName, EventName)来创建一个属于ClassName的EventName ...
- jenkens2权威指南
第1章 Jenkins简介 Jenkins 2是什么 JobConfigHistory:这个插件可以追溯XML配置的历史版本信息, 并且允许你查看每次变更的内容. JenkinsFile Jenkin ...
- #背包,位运算#洛谷 3188 [HNOI2007]梦幻岛宝珠
题目 分析 既然对于每个\(w_i\)都能被分解为\(a*2^b\), 那么考虑维护关于\(b\)的背包,再将关于\(b\)的背包统计为关于\(b+1\)的背包 代码 #include <cst ...
- OpenHarmony—应用间HSP开发指导
应用间HSP用于不同应用间的代码.资源共享. 应用间HSP的宿主应用是一种特殊状态的应用,只能由一个HSP组成,不会独立运行在设备上,而是被普通应用模块的依赖项引用.当普通应用运行时,通过动态调用的 ...
- 许北林:我为什么加入OpenHarmony生态?又为什么要做“启航KP”开发套件?
许北林 软通动力 资深项目经理 在全球开源趋势下,中国正逐渐成为全球开源软件的主要使用者和核心贡献者.今天我们来认识一位接触 OpenHarmony 不到一年,便带领团队成功开发出一款"启航 ...
- C++ STL 容器和算法:详解和实例演示
C++ STL(标准模板库)提供了一组丰富的容器和算法,使得开发者能够更加高效地编写程序.本文将介绍STL中的一些常用容器和算法. 容器 vector vector是一个动态数组,可以在运行时调整大小 ...
- Nacos无法连接wsl2上部署的MySQL
情况描述 在部署Nacos时,需要连接MySQL数据库管理数据,但是如果连接的是wsl2上部署的MySQL,使用127.0.0.1或者localhost,通常会出现如下错误: org.springfr ...
- 《苏丹的复仇》携手华为HMS生态,实现用户、收入双增长
中国出海中东和北非地区的策略类手游<苏丹的复仇>(Revenge of Sultans,ROS)和华为HMS生态深度合作,为本地用户带来创新游戏体验,成为当地广受欢迎的游戏之一,下载量居应 ...
- CENTOS 6.4 编译安装APACHE PHP MYSQL ZEND【转载未测试】
CENTOS 6.4 编译安装APACHE PHP MYSQL ZEND 由 cache 发布于 WWW 2013-07-21 [ 5560 ] 次浏览 [ 0 ] 条评论 标签: LAMP 搞网站跑 ...