案例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. asp.net源程序编译为dll文件并调用的实现过程

    很多时候,我们需要将.cs文件单独编译成.dll文件,这就需要使用csc命令将.cs文件编译成.dll动态链接库文件.具体的操作步骤如下: 打开命令窗口->输入cmd到控制台->cd C: ...

  2. asp.net 关于字符串内范围截取的一点方法总结

    前两天有一位网友提出了一个字符串内截取字符串的问题,除了用普通的字符串截取的方式外,我推荐的是用LINQ方式来截取.两者实际上差别不是很大,都是采用字符串截取方式,但后者从写法和观察效果会比前者简单实 ...

  3. Unity3D学习笔记——NGUI之Property Binding

    Property Binding:用于绑定两个组件,然后可以将一个组件的信息发送给另一个组件. 效果图如下: 一:使用步骤 1.建立一个Sprite 2.建立一个Label 3.为Sprite添加Pr ...

  4. Unity3D学习笔记——组件之Mesh(网格)

    Mesh:网格组件.主要用于设置外形和外表. Mesh Filter:网格过滤器.就是为游戏对象添加一个外形. 例:设置外形为Sphere  如果获取的网格拥有蒙皮信患,Unity将自动创建一个skn ...

  5. 【转】 VC++ 关闭程序后任务管理器进程中进程仍然存在的解决方法

    转载出处:http://blog.csdn.net/zac_sian/article/details/50809084 可以从以下两个方面进行查找! 1.程序开启了进程,进程中使用了while(1), ...

  6. hadoop集群加入新节点hhbase调试

    一.改动vi /etc/hosts 添加节点ip.(没个节点都要加入 )  二.设置hostname     vi /etc/sysconfig/network      把hostname改为nod ...

  7. 使用bbed编辑研究oracle数据块结构

    bbed是随oracle软件公布的一款数据块查看和编辑工具,作为一款内部工具.bbed的功能很强大,可是假设使用不当可能给数据库造成无法挽回的损失.因此.我们建议在使用bbed改动数据块前备份被改动的 ...

  8. ios如何在当前工程中添加编辑新建的FramesWork

    本文转载至 http://www.apkbus.com/android-131519-1-1.html,感谢原文作者的分享.     naniboy 该用户从未签到   可能很多大牛都见过FaceBo ...

  9. Native VLAN打上标记

    802.1Q和ISL都知道两者的区别在于前者对native vlan的流量不打标记,而后者统一都打标记. 配置成Native VLAN的Trunk端口,收到Native VLAN的帧后,不打标记直接从 ...

  10. iOS学习笔记(七)——UI基础UIButton

    前面写了UIWindow.UIViewController,那些都是一些框架,框架需要填充上具体的view才能组成我们的应用,移动应用开发中UI占了很大一部分,最基础的UI实现是使用系统提供的各种控件 ...