ios - NSFileManager contentsOfDirectoryPath 返回空

标签 ios

我的 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/

相关文章:

java - 如何更改名为时间戳的文件夹的截屏路径?

ios - 如何使用 Swift 找到距我所在位置的距离

c++ - 从 UIImage 转换为 cv::Mat,然后返回 UIImage 会降低图像质量

IOS > 使用 POST 在 Safari 中打开 URL

html - iOS 15 最小化地址栏问题,固定位置,全屏内容

iphone - 在 View 导航时在 UITableView 中显示数据

iOS - 获取 ARP 表

jquery - 如何避免在 iPhone 应用程序上下拉屏幕

objective-c - NSUUID冲突(iOS6.0及以上)

iphone - Google App Engine Java - 对于 POST 参数,request.getParameter 在部署时返回 null,但在本地工作