我想做的事情看起来很简单:获取我的应用程序上给定“目录”中的文件名数组。但是我越多地使用 NSFileManager 和 NSBundle,我发现自己越迷失...我只想获取在我的 iPhone Xcode 项目中的特定目录中组织的文件的文件名...例如:有问题的目录称为“Images”(使用 Xcode 中项目图标下的“Add > New Group”创建),包含 10 个 .png 图像。这看起来很简单,但我一无所获。我希望能得到一些帮助来找到答案。

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

有帮助吗?

解决方案

如果你想要的文件夹是应用程序包的一部分,你需要的,而不是一组创建资源组中的文件夹参考,(它会在Xcode显示为一个蓝色的文件夹,而不是黄色的)

要做到这一点,在提示时拖动从搜索和选择的文件夹参照的文件夹。

一旦你的,你应该能够像获得该文件夹的内容:

NSError *error = nil;

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

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

其他提示

接受的答案一直在现在已废弃多年。以下应被代替使用。

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

更新:更新@macserv接受的答案我张贴此之后。

如今,您可以这样做:

  1. 从 Finder 中,将文件夹拖放到项目的导航器中,然后将显示下一个弹出窗口:enter image description here
  2. 正如您在屏幕截图中看到的,您必须选择 创建文件夹引用.
  3. 执行本文的解决方案告诉您的操作。我是说:

    NSError *错误= nil;

    nsString *yourFolderPath = [[[[NSBundle Mainbundle] ResourcePath] stringByAppendingPathComponent:@“ yourfolder”];

    nsArray *yourfolderContents = [[[nsfileManager defaultManager] contentsofdirectoryatpath:yourFolderPath错误:&error];

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top