gpt4 book ai didi

Objective-C 相对文件路径

转载 作者:行者123 更新时间:2023-12-02 00:56:20 39 4
gpt4 key购买 nike

我有一个用于命令行的 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 中创建相对文件路径吗?

最佳答案

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

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

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

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

关于Objective-C 相对文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34692052/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com