读取文件夹中的文本文件

时间:2011-05-17 16:34:09

标签: iphone objective-c string file text

我正在开发一款iPhone应用程序。

我知道如何读取放置在与项目相同的directroy中的文本文件。 但是如何读取与项目位于同一目录中的文件夹中的文件? 它总是给我一个空白的屏幕。

这有效:

NSString *textUrl = [[NSBundle mainBundle] pathForResource:@"myText" ofType:@"txt"];
textView.text = [NSString stringWithContentsOfFile:textUrl encoding:NSUTF8StringEncoding error:nil];

但这给了我一个空白的文字视图:

NSString *textUrl = [[NSBundle mainBundle] pathForResource:@"myFolder/myText" ofType:@"txt"];
textView.text = [NSString stringWithContentsOfFile:textUrl encoding:NSUTF8StringEncoding error:nil];

如何解决此问题?

2 个答案:

答案 0 :(得分:0)

读取文件与开发机器硬盘上的文件结构无关。它与目标设备硬盘的文件结构有关。如果您查看标准iOS应用Xcode项目的构建阶段,您将看到“复制捆绑资源”阶段。此阶段负责将资源(如文本文件)复制到应用程序的文档目录。

即使您的资源位于开发计算机项目结构中的不同文件夹中,也有可能将其复制到应用程序包中的根级文档目录。您可以通过查看Copy Bundle Resources构建阶段并检查您要加载的资源来获得一个想法。如果它不在文件夹引用(蓝色,Finder-esque,文件夹)中,则可能只是被复制到根级别。

答案 1 :(得分:-1)

NSBundle的方法为pathForResource:ofType:inDirectory:

NSString *textUrl = [[NSBundle mainBundle] pathForResource:@"myText" ofType:@"txt" inDirectory:@"myFolder"];
textView.text = [NSString stringWithContentsOfFile:textUrl encoding:NSUTF8StringEncoding error:nil];