查找文件
下面通过一个程序有组合使用上面所学的知识,比如NSString、NSMutableArray、NSEnumerator以及NSFileManager来对文件系统进行操作,如创建目录、删除文件、移动文件或者获取文件信息。在下面的例子中,会要求NSFileManager来创建NSDirectoryEnumerator来遍历文件的层次结构。通过注释对下面的例子进行说明:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
//自动释放池的样板代码
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
//通过NSFileManager中的defaultManager创建一个NSFileManager对象
NSFileManager*manager;
manager =[NSFileManager defaultManager];
//指定目录,stringByExpandingTildeInPath将”~”替换成当前用户的主目录。
NSString*home;
home =[@"~" stringByExpandingTildeInPath];
//将路径字符串传递给文件管理器,并得到NSDirectoryEnumerator对象,存储了文件夹下面的层次结构
NSDirectoryEnumerator *direnum;
direnum =[manager enumeratorAtPath: home];
//定义一个可变数组对象,用来存储匹配的文件信息
NSMutableArray*files;
files =[NSMutableArray arrayWithCapacity: 42];
NSString *filename;
//定义一个空的NSString对象,如果遍历出来的对象为nil则代表到结尾了,可以跳转循环
while (filename = [direnum nextObject]) {
//如果符合条件,则存储到可变数组中
if ([[filename pathExtension]
isEqualTo: @"jpg"]) {
[filesaddObject: filename];
}
}
//定义枚举对象
NSEnumerator*fileenum;
fileenum =[files objectEnumerator];
//依次打印出数组中的内容
while(filename = [fileenum nextObject]) {
NSLog(@"%@", filename);
}
//自动释放池的样板代码做清理工作
[pool drain];
return 0;
}
本文档演示如何在Objective-C中使用NSFileManager和相关类来查找文件,特别是针对jpg文件。通过创建NSDirectoryEnumerator遍历文件系统,找到符合特定条件(如扩展名为jpg的文件)的条目,并将它们存储在NSMutableArray中,最后打印出这些文件的名称。

被折叠的 条评论
为什么被折叠?



