当前位置:  开发笔记 > Android > 正文

Objective-C相对文件路径

如何解决《Objective-C相对文件路径》经验,为你挑选了1个好方法。

我有一个xcode/objective-c项目,旨在与命令行(特别是iOS或mac)一起使用.该项目位于一个名为Prototype的文件夹中,在这个文件夹中我有一个文本文件:data.txt.我正在尝试创建一个方法来将data.txt的内容作为NSString返回.我使用以下代码成功完成了此操作:

+ (NSString *)loadTextFileToString:(NSString*)fileDest {
    NSString *filePath = @"/Users/John/Documents/Objective-C/Prototype/Prototype/data.txt"
    NSError *error = nil;
    NSString *fileContent = [NSString stringWithContentsOfFile:filePath
                                                  encoding:NSASCIIStringEncoding
                                                     error:&error];
    return fileContent;
}

这种方法有效,但我想用相对路径而不是绝对路径访问该文件.例如,在Eclipse中,我将使用路径"src/data.txt".我可以采用类似的方法在xcode/objective-c中创建相对文件路径吗?



1> Ken Thomases..:

您可以简单地使用相对路径,但问题是当前工作目录可能不是您所期望的.

当前的工作目录实际上只与在命令行shell中工作有关.用户为了方便起见将其设置为他们想要的方式.然后,它们调用命令并将路径作为参数传递,并且命令和路径参数的路径可以是相对的或绝对的.程序不能依赖工作目录作为自己的位置,也不能依赖任何其他特定位置.

当然,当您从Xcode运行程序时,您不能依赖于任何特定位置的工作目录.

如果需要,可以使用设置当前工作目录-[NSFileManager changeCurrentDirectoryPath:],但随后会破坏通过用户提供的相对路径查找文件的功能.您可以使用获取包含命令行工具的目录的路径[[NSBundle mainBundle] bundlePath].

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有