NSFileManager 在文件夹中搜索图像文件

Posted

技术标签:

【中文标题】NSFileManager 在文件夹中搜索图像文件【英文标题】:NSFileManager to search image file in folder 【发布时间】:2013-01-31 02:56:38 【问题描述】:

我正在使用 NSFileManager 搜索“index.png”文件。如果文件不存在,那么我正在尝试显示默认图像。我正在使用下面的代码,但它不起作用。我在这里做错了吗?

NSString *path;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString path1 = [[paths objectAtIndex:0] stringByAppendingPathComponent:literature.localURL.path];
path = [path1 stringByAppendingPathComponent:@"index.PNG"];

    if ([[NSFileManager defaultManager] fileExistsAtPath:path])
        cell.preview = [UIImage imageWithContentsOfFile:path1];
    
    else 
        cell.preview = [UIImage imageNamed:@"Default-html5.PNG"];
    

【问题讨论】:

尝试打印出路径 NSString - 建立路径后查看其中的内容。什么是literature.localURL? 【参考方案1】:

您正在设置路径等于两个不同的东西。对其中一个使用不同的字符串,例如

NSString *path1 = [[paths objectAtIndex:0] stringByAppendingPathComponent:literature.localURL.path];

另一个保持不变

并制作“index.PNG”“index.png”。 ios 区分大小写。

【讨论】:

克里斯。我进行了更改,path1 显示文件而不是文件夹。 path 也附加了 folderpath/index.png 而不是搜索文件夹。【参考方案2】:
cell.preview = [UIImage imageWithContentsOfFile: path];

引用苹果文档:

imageNamed:
Returns the image object associated with the specified filename.

+ (UIImage *)imageNamed:(NSString *)name
Parameters
name
The name of the file. If this is the first time the image is being loaded, the method looks for an image with the specified name in the application’s main bundle.

您的 png 不在主包中,而是在您的文件夹中

imageWithContentsOfFile:
Creates and returns an image object by loading the image data from the file at the specified path.

【讨论】:

谢谢郭。这很有意义..:) 郭。我遵循了 Chris 的建议,但即使 index.png 图像存在于某些文件夹中,所有文件仍显示默认图像。我已经更新了上面的代码。 @akash 你的“path1”是文件夹路径吗?还是文件路径? [UIImage imageWithContentsOfFile:path] 应该是 "path" 而不是 "path1" ,如果还是不行可能是你的路径不对,在 "if" 处打断点检查是否进入 if 语句 path1 是文件夹路径。它是 else 声明。 NSLog 给了我 path1-> 文件夹路径和路径打印出文件夹路径/index.png。 @akash imageWithContentsOfFile: 该方法需要文件路径,您应该将“路径”(您的 XXXX/XXX/XXX/index.png)传递给它【参考方案3】:
imageNamed: 

图片

该方法在应用程序的主包中查找具有指定名称的图像。

,对于文档目录,你必须使用

[UIImage imageWithContentsOfFile: path];

正如Guo Luchuan所说的

【讨论】:

以上是关于NSFileManager 在文件夹中搜索图像文件的主要内容,如果未能解决你的问题,请参考以下文章

nsfilemanager createFileAtPath 导致 NSFileCreationDate 为空

NSFileManager - 创建一个只读文件

NSFileManager:无法正常工作

为啥 NSFileManager 找不到这些 png 文件?

NSFileManager 创建文件失败

NSFileManager contentsOfDirectoryPath 返回空