获取文件路径

简介: 获取文件路径

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"];



目录
相关文章
|
1月前
|
Go
文件名获取
【10月更文挑战第9天】文件名获取。
28 2
|
4月前
|
Java
获取文件绝对路径的几种方法比较
获取文件绝对路径的几种方法比较
|
6月前
|
C#
C#获取文件基本信息,文件名称、修改时间、文件路径等
C#获取文件基本信息,文件名称、修改时间、文件路径等
63 0
|
Shell
6.2.3 取得路径的文件名称与目录名称
6.2.3 取得路径的文件名称与目录名称
70 0
|
Linux
linux命令basename:去掉路径和扩展名,得到指定文件的文件名(去除文件扩展名.xxx)
linux命令basename:去掉路径和扩展名,得到指定文件的文件名(去除文件扩展名.xxx)
167 0
|
Python
Python获取指定目录下的所有文件路径、获取指定目录下所有文件名(但是不包含子目录中文件名)、获取指定目录下所有pdf文件名(但是不包含子目录中pdf文件名)
Python获取指定目录下的所有文件路径、获取指定目录下所有文件名(但是不包含子目录中文件名)、获取指定目录下所有pdf文件名(但是不包含子目录中pdf文件名)
241 0
File类详解(获取文件名称、大小、路径、创建等)
File类详解(获取文件名称、大小、路径、创建等)
1172 1