如何获取图像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 中获取当前工作目录的绝对路径?