我想调用来自不同文件夹的图像,请您帮助我实现这一点;
我的文件夹有这个结构:
文件夹1
file1
image1.jpg
file2
image2.jpg
file3
image3.jpg
文件夹2 ....
在每个文件%d内,我有一个图像%.jpg
我想循环调用我的图像,
for (i = 1; i > image; i++)
{
NSString *image = [NSString stringWithFormat:@"image%d.jpg", i];
但我的问题是如何进入文件夹并获取图像
我可以有这样的东西吗:
stringWithFormat:@"Folder%d/File%d/image%d" ofType:@"jpg"
最好的方法是什么?
提前感谢!
这里有一些有用的代码片段对我有用。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
NSString *mapDirPath = [documentsDirectory stringByAppendingPathComponent:@"/MapCache"];
在文档目录中创建一个目录
NSError* error;
if (![[NSFileManager defaultManager] fileExistsAtPath:mapDirPath])
[[NSFileManager defaultManager] createDirectoryAtPath:mapDirPath withIntermediateDirectories:NO attributes:nil error:&error];
加载图像
NSString *filePath = [self.localImagePath stringByAppendingPathComponent: key];
if ( [[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
UIImage* image = [UIImage imageWithContentsOfFile:filePath];
return image;
}
编写图像
[[NSFileManager defaultManager] createFileAtPath:filePath contents:remoteData attributes:nil];
希望有帮助
当然,如果您正在从捆绑包中读取图像,则需要此图像 [[NSBundle mainBundle] pathForResource: @"filename" ofType:@"png" directory: @"directory1"]
是的,这就是我会这样做的。
for (f = 1; f <= numberOfFolders; i++) {
for (i = 1; i <= numberOfImages; i++) {
NSString* file = [NSString stringWithFormat: @".../Folder%d/File%d/image%d.jpg", f, i, i];
NSImage* image = [NSImage imageNamed: file];
// Do something with the image
}
}
注意:我不知道文件夹1/文件夹2在哪里...等等,所以我在代码上使用了".../"。请务必适当地填充该部分。
迭代文件夹和图像,将图像路径附加到库路径:
NSString * libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0];
for (NSUInteger f = 1; f <= numFolders; i++) {
for (NSUInteger i = 1; i <= numImages; i++) {
// Create the image path
NSString * imagePath = [NSString stringWithFormat:@"%@/Folder%d/File%d/image%d.jpg", libraryPath, f, i, i];
// Check if file exists
if ( [[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
UIImage * image = [UIImage imageWithContentsOfFile:imagePath];
// Use image...
}
else {
NSLog(@"Image not found.");
}
}
}