10

我想做的事情似乎很简单:在我的应用程序的给定“目录”中获取一组文件名。但是我玩的越多 NSFileManager 和 NSBundle 我发现自己越来越迷失......我只想在我的 iPhone Xcode 项目的特定目录中组织文件的文件名......例如:有问题的目录是称为“图像”(使用 Xcode 中项目图标下的“添加 > 新组”创建)并包含 10 个 .png 图像。这似乎很简单,但我无处可去。我很感激在寻找答案方面的帮助。

问:如何在我的应用程序中获取给定目录中所有文件的文件名的 NSArray?

4

3 回答 3

29

如果您希望该文件夹成为 App 包的一部分,您需要在 Resources 组内创建一个文件夹引用,而不是一个组(它将在 Xcode 中显示为蓝色文件夹,而不是黄色文件夹)。

为此,您从 Finder 中拖动文件夹并在出现提示时选择文件夹引用。

一旦你有了它,你应该能够通过以下方式获取文件夹的内容:

NSError *error = nil;

NSString *yourFolderPath = [[[NSBundle mainBundle] resourcePath]
                            stringByAppendingPathComponent:@"YourFolder"];

NSArray  *yourFolderContents = [[NSFileManager defaultManager] 
                                contentsOfDirectoryAtPath:yourFolderPath error:&error];
于 2009-08-13T13:58:38.650 回答
9

多年来,已接受的答案已被弃用。应改为使用以下内容。

- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error

更新:@macserv 在我发布后更新了接受的答案。

于 2012-03-29T21:51:24.787 回答
1

如今,这就是你的做法:

  1. 从 Finder 中,将文件夹拖放到项目的导航器中,将显示下一个弹出窗口: 在此处输入图像描述
  2. 正如您在该屏幕截图中看到的那样,您必须选择Create folder references
  3. 做这篇文章的解决方案告诉你做什么。我是说:

    NSError *error = nil;

    NSString *yourFolderPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"YourFolder"];

    NSArray *yourFolderContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:yourFolderPath error:&error];

于 2016-09-10T16:05:57.777 回答