案例1:通过文件扩展名进行搜索文件

  1.   NSFileManager *manager = [NSFileManager defaultManager];
  2. /*
  3. 在Mac OS X系统有一个代表主目录的速记符号~(也成为代字符)。
  4. stringByExpandingTildeInPath将~替换成当前用户的主目录。
  5. enumeratorAtPath:返回一个NSDictionaryEnumerator,它是NSEnumerator的子类。每次在这个枚举器对象中调用nextObject时,都会返回该目录中一个文件的另一个路径。这个方法也能搜索子目录。
  6. */
  7. NSString *home = [@"~" stringByExpandingTildeInPath];
  8. //
  9. NSDirectoryEnumerator *direnum = [manager enumeratorAtPath:home];
  10. NSMutableArray *files = [NSMutableArray arrayWithCapacity:32];
  11. NSString *filename;
  12. NSLog(@"请输入要查询的文件类型:");
  13. char extension[10];
  14. scanf("%s",extension);
  15.    //将C语言字符串转OC字符串
  16. NSString *exten = [NSString stringWithFormat:@"%s",extension];
  17. while (filename = [direnum nextObject]) {
  18. if ([[filename pathExtension]isEqualTo:exten]) {
  19. [files addObject:filename];
  20. }
  21. }
  22. NSEnumerator *fileenum;
  23. fileenum = [files objectEnumerator];
  24. while (filename =[fileenum nextObject]) {
  25. NSLog(@"%@",filename);
  26. }

案例2:通过文件名进行搜索文件

  1. #import <Foundation/Foundation.h>
  2. int main(int argc, const char * argv[]) {
  3. @autoreleasepool {
  4. NSFileManager *manager = [NSFileManager defaultManager];
  5. /*
  6. 在Mac OS X系统有一个代表主目录的速记符号~(也成为代字符)。
  7. stringByExpandingTildeInPath将~替换成当前用户的主目录。
  8. enumeratorAtPath:返回一个NSDictionaryEnumerator,它是NSEnumerator的子类。每次在这个枚举器对象中调用nextObject时,都会返回该目录中一个文件的另一个路径。这个方法也能搜索子目录。
  9. */
  10. NSString *home = [@"~" stringByExpandingTildeInPath];
  11. //获取主目录下的文件路径
  12. NSDirectoryEnumerator *direnum = [manager enumeratorAtPath:home];
  13. //声明一个足够大的数组来保存搜索到的文件路径
  14. NSMutableArray *files = [NSMutableArray arrayWithCapacity:100];
  15. NSString *path;
  16. NSLog(@"请输入要查询的文件名:");
  17. char fileName[10];
  18. scanf("%s",fileName);
  19. //字符串转NSString
  20. NSString *exten = [NSString stringWithUTF8String:fileName];
  21. while (path = [direnum nextObject]) {
  22. //对路径进行分割
  23. NSArray *array = [path pathComponents];
  24. NSString *obj;
  25. for(obj in array)
  26. {
  27. //对路径的分割部分进行检索,比对,如果等于要输入的文件名,进行另外保存
  28. if ([obj isEqualTo:exten]) {
  29. [files addObject:path];
  30. break;
  31. }
  32. }
  33. }
  34. //遍历搜索结果
  35. for(id obj in files)
  36. {
  37. NSLog(@"%@",obj);
  38. }
  39. }
  40. return 0;
  41. }

OC_NSFileManager的更多相关文章

随机推荐

  1. 通信协议之广播---recvfrom 放回客户端的ip地址第一次全为0.0.0.0

    遇到一个很恶心的问题. while(1) { recvfrom(sockfd, readbuff, UDP_CMD_BUFF_LENGTH - 1, 0, (struct sockaddr *)&am ...

  2. 最新win7系统安全稳定版

    最新win7系统32位安全稳定版 V2016年2月,具有更安全.更稳定.更人性化等特点.集成最常用的装机软件,集成最全面的硬件驱动,精心挑选的系统维护工具,加上萝卜独有人性化的设计.是电脑城.个人.公 ...

  3. ios --图片文字组合头像那点事

    /** 图片文字组合头像那点事 @param string 昵称 @param imageSize 图片尺寸 @param imageColor 图片颜色 @return 返回的 图片 */ + (U ...

  4. MySQL内连接查询

    1.语法: select 字段列表 from table1,table2 where 子句: select 字段列表 from table1 as 别名1 inner join table2 as 别 ...

  5. 在看lua仿单继承

    --lua仿单继承 Account = { balance = } --对于成员变量,第一此访问要使用元表中的,在第一次也赋值到自己的域中了 --将不涉及到__index了 function Acco ...

  6. #1560 : H国的身份证号码II(dp+矩阵快速幂)

    #1560 : H国的身份证号码II 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 H国的身份证号码是一个N位的正整数(首位不能是0).此外,由于防伪需要,一个N位正整 ...

  7. JS将秒转换为 天

    function SecondToDate(msd) {             var time =msd             if (null != time && " ...

  8. Oracle数据库使用Analyze提升sql性能

    Oracle数据库使用Analyze提升sql性能 如果你不使用analyze完成sql优化,将意味着:你拒绝使用数据库的查询优化器,也失去了使用优化连接的机会.假设你创建了一张拥有100万条记录的临 ...

  9. Vue的插值与表达式

    正常情况我们在页面取值都是通过 {{ data }}来取值,但是有时候我们就是想输出HTML,而不是将数据解析后的纯文本,这个时候可以使用v-html来绑定数据 <span v-html=&qu ...

  10. java限流(一): Semaphore

    Before obtaining an item each thread must acquire a permit from the semaphore, guaranteeing that an ...