NSFileManager contentsOfDirectoryPath返回空

时间:2012-02-02 12:02:05

标签: ios

我的xCode项目中有一个图像组。我试图从该文件夹中的所有文件到我的应用程序。

 NSFileManager *fm = [NSFileManager defaultManager];
    NSArray *dirContents = [fm contentsOfDirectoryAtPath:@"/Images/" error:nil];

上面的代码总是返回一个空数组。我通过右键单击xCode 4.2中的组添加了“新组”。

1 个答案:

答案 0 :(得分:2)

您使用的路径可能不正确。 /Images/将引用沙箱根目录中的图片。如果文件夹中的图像作为资源添加到项目中,它们将存储在应用程序的Resources目录中,甚至可能不在Images目录中。

您还想阅读错误以查看错误。这就是它的用途:

NSErorr *error = nil;
NSArray *dirContents = [fm contentsOfDirectoryAtPath:@"/Images/" error:&error];
if (!dirContents) {
    // inspect error
} 

使用-[NSBundle resourcePath]获取应用程序资源目录的路径。

了解您的项目结构不等于您的资源最终会在您的应用程序中的位置。资源都使用您的目标复制到Resources目录 Copy Bundle Resources建立阶段。

如果您确实要在资源目录的其他目录中添加某些文件,请添加一个新的Copy Files阶段,目标为Resources,并以您的文件夹命名Subpath,比如Images

然后,您可以使用文件管理器和使用的路径遍历这些图像:

[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Images"];