案例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. }

最新文章

  1. 数组为什么可以使用linq查询
  2. bzoj 1037 [ZJOI2008]生日聚会Party(DP)
  3. 浅谈C51内存优化
  4. 配色问题lingo实现
  5. SpringMVC国际化支持
  6. ubuntu + 不识别无线网卡简易处理方式 + 需有线联网
  7. 数据库【mysql篇】学习笔记
  8. 记录一下这次web实训的两个网站
  9. MySQL 大致测试更新时间
  10. linux dns
  11. Error:fatal: Not a git repository (or any of the parent directories): .git
  12. 如何高效的通过BP算法来训练CNN
  13. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验八:PS/2模块② — 键盘与组合键
  14. 解决火狐浏览器安装不上Selenium IDE插件“此附加组件无法安装”
  15. jmeter,测登录,要不要过滤掉JS,CSS等请求?感觉过滤掉了压出来的数据就不真实?
  16. IOS多选单选相册图片
  17. GIS中要素的捕捉以及C++实现
  18. XPath语法使用的一些心得
  19. 《深入浅出MyBatis技术原理与实战》——4. 映射器,5. 动态SQL
  20. 使用PM2管理nodejs进程分享

热门文章

  1. Redis特性和应用场景
  2. head&amp;amp;&amp;amp;tail
  3. redis字典的底层实现hashTable
  4. Restoring Road Network
  5. Git使fork项目与源项目保持一致方法
  6. phpwind 论坛 转移
  7. SQLServer与ASP中DATEDIFF函数区别
  8. python基础里的那些为什么?
  9. 登录案例locustfile.py
  10. Linux中的服务管理