获取文件路径

简介: 获取文件路径

iOS设备中的每个文件都有路径,这指的是文件在文件系统中的准确位置。要让应用程序能够读写其沙箱中的文件,需要指定该文件的完整路径。Core Foundation提供了一个名为NSSearchPathForDirectoriesInDomains的C语言函数,它返回指向应用程序的目录Documents或Library/Caches的路径。该函数可返回多个目录,因此该函数调用的结果为一个NSArray对象。使用该函数来获取指向目录Documents或Library/Caches的路径时,它返回的数组将只包含一个NSString;要从数组中提取该NSString,可以使用NSArray的objectAtIndex方法,并将索引指定为0。


NSString提供了一个名为stringByAppendingPathComponent的方法,可用于将两个路径段合并起来。通过调用NSSearchPathForDirectoriesInDomains的结果与特定文件名合并起来,获取一条完整的路径,它指向应用程序的Documents或Library/Caches目录中相应的文件。


例如开发一个计算圆周率的前100000位的iOS应用程序,而我们希望应用程序将结果写入到一个缓存文件中以免重新计算。为了获取指向该文件的完整路径,首先需要获取指向目录Library/Caches的路径,再在它后面加上文件名:

NSString *cacheDir = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *piFile = [cacheDir stringByAppendingPathComponent:@"American.pi"];


要获取指向目录Documents中特定文件的路径,可以使用相同的方法,但是需要将传递给NSSearchPathForDirectoriesInDomains的第一个参数设置为NSDocumentDirectory

NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *scoreFile = [docDir stringByAppendingPathComponent:@"HighScores.txt"];


Core Foundation还提供了另一个名为NSTemporaryDirectory的C语言函数,它返回应用程序的tmp目录的路径。与前面一样,也可使用该函数来获取指向特定文件的路径:

NSString *scratchFile = [NSTemporaryDirectory() stringByAppendingPathComponent:@"Scratch.data"];



目录
相关文章
|
JSON 测试技术 数据处理
iOS-底层原理 35:组件化(一)方案
iOS-底层原理 35:组件化(一)方案
1417 0
iOS-底层原理 35:组件化(一)方案
Apple Push Services不受信任解决方法
Apple Push Services不受信任解决方法
381 59
|
11月前
|
数据采集 数据挖掘 数据处理
Python 删除存在特定内容的行
Python 删除存在特定内容的行
261 1
|
10月前
|
存储 大数据 数据管理
大数据分区注意事项
大数据分区注意事项
159 5
|
9月前
|
容器
Flutter 解决宽度或高度不足而导致的屏幕溢出显示问题
Flutter 解决宽度或高度不足而导致的屏幕溢出显示问题
792 1
|
数据可视化 算法 数据挖掘
【2022高教社杯数学建模】C题:古代玻璃制品的成分分析与鉴别方案及代码实现(已经更新完毕)
2022年高教社杯数学建模竞赛C题的详细分析、解题过程和代码实现,题目围绕古代玻璃制品的成分分析与鉴别,涉及表面风化分析、分类规律研究、未知类别鉴别和化学成分关联关系比较等多个问题。
276 1
【2022高教社杯数学建模】C题:古代玻璃制品的成分分析与鉴别方案及代码实现(已经更新完毕)
|
安全 调度 C语言
iOS多线程之GCD-同步、异步、并发、串行、线程组、栅栏函数、信号量等全网最全的总结
iOS多线程之GCD-同步、异步、并发、串行、线程组、栅栏函数、信号量等全网最全的总结
1423 1
|
Ubuntu Linux
在Linux中,如何查看当前目录下的文件和文件夹?
在Linux中,如何查看当前目录下的文件和文件夹?
|
IDE Java 持续交付
Java中的代码质量检查与自动化工具
Java中的代码质量检查与自动化工具
|
机器学习/深度学习 人工智能 自然语言处理
混淆矩阵(Confusion Matrix)
随着机器学习和人工智能的迅速发展,分类模型成为了解决各种问题的重要工具。然而,仅仅知道模型预测对了多少样本是不够的。我们需要一种更详细、更系统的方法来理解模型的分类能力,以及它在不同类别上的表现。 混淆矩阵是在机器学习和统计学中用于评估分类模型性能的一种表格。它对模型的分类结果进行了详细的总结,特别是针对二元分类问题,另外混淆矩阵是用于评估分类模型性能的一种表格,特别适用于监督学习中的分类问题。它以矩阵形式展示了模型对样本进行分类的情况,将模型的预测结果与实际标签进行对比。
1217 1