1

我想从不同的文件夹中调用图像,请你帮我实现这个;

我的文件夹有这个结构:

文件夹 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"

什么是最好的方法?

提前致谢!

4

3 回答 3

2

这里有一些对我有用的代码片段。

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"]

于 2012-10-15T15:31:23.787 回答
0

迭代将图像路径附加到库路径的文件夹和图像:

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.");
        }
    }
}
于 2012-10-15T16:32:44.013 回答
0

对,我就是这样做的。

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
    }
}

注意:我不知道 Folder1/Folder2... 等在哪里,所以我在代码上使用了“.../”。请务必适当地填写该部分。

于 2012-10-15T15:42:32.253 回答