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

Iphone 如何在我的应用程序中获取给定目录中所有文件的文件名NSArray?,iphone,xcode,filesystems,nsfilemanager,nsbundle,Iphone,Xcode,Filesystems,Nsfilemanager,Nsbundle,我想做的似乎很简单:在我的应用程序的给定“目录”中获取一个文件名数组。但是,我越是使用NSFileManager和NSBundle,我发现自己就越是迷路……我只想在我的iPhone Xcode项目中的一个特定目录中获得文件名……例如:有问题的目录称为“Images”(使用Xcode项目图标下的“Add>New Group”创建)并包含10.png图像。这似乎很简单,但我一事无成。如果能帮我找到答案,我将不胜感激 问:如何在我的应用程序中获取给定目录中所有文件的文件名的NSArray?如果您希望该

我想做的似乎很简单:在我的应用程序的给定“目录”中获取一个文件名数组。但是,我越是使用NSFileManager和NSBundle,我发现自己就越是迷路……我只想在我的iPhone Xcode项目中的一个特定目录中获得文件名……例如:有问题的目录称为“Images”(使用Xcode项目图标下的“Add>New Group”创建)并包含10.png图像。这似乎很简单,但我一事无成。如果能帮我找到答案,我将不胜感激


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

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

要执行此操作,请从Finder中拖动文件夹,并在提示时选择文件夹引用

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

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在我发布此消息后更新了已接受的答案

现在,你是这样做的:

  • 在Finder中,将文件夹拖放到项目的导航器中,下一个弹出窗口将显示:
  • 正如您在该屏幕截图中所看到的,您必须选择创建文件夹引用
  • 按照这篇文章的解决方案去做。我的意思是:

    n错误*错误=nil

    NSString*yourFolderPath=[[[NSBundle mainBundle]资源路径] stringByAppendingPathComponent:@“YourFolder”]

    NSArray*yourFolderContents=[[NSFileManager-defaultManager] 目录路径的内容:yourFolderPath错误:&错误]


  • 在我的例子中,stringByAppendingString:@“YourFolder”不起作用,因为最终路径缺少“/”。我建议使用stringByAppendingPathComponent:@“YourFolder”代替stringByAppendingPathComponent。这将包括/字符。整行应该是:NSString*yourFolderPath=[[[NSBundle mainBundle]resourcePath]stringByAppendingPathComponent:@“YourFolder”];