我的 xCode 项目中有一个图像组。我正在尝试将该文件夹中的所有文件放入我的应用程序中。
NSFileManager *fm = [NSFileManager defaultManager];
NSArray *dirContents = [fm contentsOfDirectoryAtPath:@"/Images/" error:nil];
上面的代码总是返回一个空数组。我通过右键单击然后“新建组”在 xCode 4.2 中添加了组。
最佳答案
您使用的路径可能不正确。 /Images/
将引用沙箱根目录中的图像。如果文件夹中的图像作为资源添加到项目中,它们将存储在应用程序的 Resources 目录中,甚至可能不在 Images
中。目录。
您还想阅读错误以了解问题所在。这就是它的用途:
NSErorr *error = nil;
NSArray *dirContents = [fm contentsOfDirectoryAtPath:@"/Images/" error:&error];
if (!dirContents) {
// inspect error
}
使用 <a href="http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSBundle_Class/Reference/Reference.html" rel="noreferrer noopener nofollow">-[NSBundle resourcePath]</a>
获取应用程序资源目录的路径。
了解您的项目结构不等于您的资源在您的应用程序中的最终位置。使用您的目标将资源全部复制到 Resources 目录
Copy Bundle Resources
build 阶段。
如果你真的想在资源目录的不同目录中添加某些文件,请添加一个新的 Copy Files
阶段,目的地为 Resources
和一个 Subpath
以您的文件夹命名,例如 Images
然后您可以使用您的文件管理器和您使用的路径遍历这些图像:
[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Images"];
关于ios - NSFileManager contentsOfDirectoryPath 返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9111971/