我在文档目录中有一个名为“2”的文件夹。现在在文件夹“2”中,我有五个图像名为0.png,1.png,2.png,3.png和4.png。我想检索这些图像并保存到数组中。我有代码但它只返回一个图像。
int b=2;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSLog(@"%@",paths);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%d/0.png",b]];
UIImage *img = [UIImage imageWithContentsOfFile:getImagePath];
NSLog(@"%@",getImagePath);
imge.image=img;
答案 0 :(得分:1)
你应该遍历图像。
int b=2;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSLog(@"%@",paths);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSMutableArray *images = [NSMutableArray arrayWithCapacity:5];
for (int i = 0; i < 5; i++)
{
NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%d/%d.png",b, i]];
UIImage *img = [UIImage imageWithContentsOfFile:getImagePath];
[images addObject:img];
NSLog(@"%@",getImagePath);
imge.image=img;
}
而不是硬编码图像文件的计数和名称,正如Dominik所建议的那样,你应该使用contentsOfDirectoryAtPath:error:来获取该目录中的文件列表。
NSError *error = nil;
NSArray *imageFileNames = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:[documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%d",b]] error:&error];
答案 1 :(得分:1)
只需使用NSFileManager,如下所示:
[[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:&error];
它将为您提供一个数组,其中包含给定路径中所有文件的所有文件路径。
这是从URL数组中加载图像的方法。
NSArray *paths = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:&error];
for (NSURL *url in paths)
{
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:url]];
}