美文网首页
获取文件路径

获取文件路径

作者: anny_4243 | 来源:发表于2021-07-14 14:18 被阅读0次

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

    摘自《iOS 10 开发指南》

    相关文章

      网友评论

          本文标题:获取文件路径

          本文链接:https://www.haomeiwen.com/subject/jssypltx.html