如何获取图像objective-C的路径

Posted

技术标签:

【中文标题】如何获取图像objective-C的路径【英文标题】:How to get path for images objective-C 【发布时间】:2012-10-15 15:18:07 【问题描述】:

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

我的文件夹有这样的结构:

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

最好的方法是什么?

提前致谢!

【问题讨论】:

您将这些图像存储在哪里?在应用程序包中?或者在 Documents 或 Library 文件夹中的某个地方? @atxe 在带有库文件夹的应用程序内 【参考方案1】:

这里有一些对我有用的代码 sn-ps。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
NSString *mapDirPath = [documentsDirectory stringByAppendingPathComponent:@"/MapCache"];

//在documents目录下创建目录

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

【讨论】:

谢谢回复,我用的是webViewController,self.localImagePath不是这个类的对象你知道我该怎么办吗【参考方案2】:

好吧,我就是这样做的。

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... 等在哪里,所以我在代码中使用了“.../”。请务必正确填写该部分。

【讨论】:

【参考方案3】:

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

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.");
        
    

【讨论】:

以上是关于如何获取图像objective-C的路径的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Objective-C 中获取当前工作目录的绝对路径?

在 XCAssets iOS App 中获取图像文件的路径

如何使用 Objective-C 从 IOS Cordova 中的设备(本地数据库)中删除图像

如何获取数组Objective-C中每个项目的索引

使用objective-c从url获取网络摄像头图像

如何从 .m 函数获取结果到 .mm 类 Objective-C 与 Qt 混合