获取资源文件夹中子目录的路径

8
我会尽力完成翻译工作。以下是您需要翻译的内容:

我正在尝试获取资源文件夹子目录中所有png文件的数组。 在我的应用程序资源文件夹中,我创建了一个名为“images”的文件夹。此文件夹包含我需要显示的所有png文件。

这是我尝试获取路径的方法:

    NSString *imagepath = [NSString stringWithFormat:@"%@/%@",[[NSBundle mainBundle] bundlePath],@"images/"];

NSLog(@"Path to Images: %@", imagepath);

NSArray * paths = [NSBundle pathsForResourcesOfType: @"png" inDirectory:imagepath];
NSMutableArray * allImageNames = [[NSMutableArray alloc] init];

for ( NSString * path in paths )
{
    if ( [[path lastPathComponent] hasPrefix: @"AQ"] )
        continue;

    [allImageNames addObject: [path lastPathComponent]];
}

我这样可以得到一个路径,例如…/appname.app/images

但如果我尝试这样做,那么数组总是为空的。 我错在哪里了?

问候, Zarak


你的图片名字是什么?它们像image.AQ这样吗? - Nekto
图片名称类似于“banana_icon.png”。但我使用AQGridView创建了所有文件的图库。 - DevZarak
那你为什么要检查 [[path lastPathComponent] hasPrefix: @"AQ"] - Nekto
你确定图片是在一个单独的文件夹里而不仅仅是在Xcode项目中的“资源组”内吗? - reddersky
1个回答

27

刚刚解决了。

NSBundle *mainBundle = [NSBundle mainBundle];
NSArray *pngs = [mainBundle pathsForResourcesOfType:@".png"
 inDirectory:@"random pictures"];

 NSLog(@"pngs in my dir:%@", pngs);

目录结构:"Resources / random pictures"。

这个方法是有效的,但是当你将文件添加到“Resources”时,你需要勾选“为任何添加的文件夹创建文件夹引用”,而不是“为任何添加的文件夹创建群组”。

重要步骤

干杯!


1
通过使用另一种解决方案解决了这个问题,但是我会记在心里,在另一个项目中尝试一下。长话短说,你得到了采纳。 ;) 感谢您的回复。 - DevZarak
对我没用,我有一个名为 In-Work 的文件夹,里面有一些 PDF 文件。我正在尝试使用以下代码访问这些文件: NSString *inWorkPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"In-Work"]; NSArray *resContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:inWorkPath error:&error]; 但是 resContents 返回 nil。 - Eshwar Chaitanya
在将文件夹添加到项目时,您是否勾选了“创建文件夹引用”?@EshwarChaitanya - codrut
@codrut 抱歉,那是我的错误。就像你所说的那样,我在复制资源时没有勾选创建文件夹引用。 - Eshwar Chaitanya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接