案例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. windows中控制台窗口和普通窗口有什么区别?

    1. 窗口都是windows标准窗口,有窗口句柄,但是console window没有消息循环,直接从缓冲区读数据,显示数据. windows中普通窗口都有自己的窗口过程, 我可以使用SetWindo ...

  2. 冒泡排序-python

    题目: 如果一个list是一组打乱的数字 list1=[3,2,1,9,10,78,6] 如何用python将这组打乱的数字进行冒泡排序? 题解: def sort(nums): for i in r ...

  3. Laravel中创建控制器

    <?php /** * Created by PhpStorm. * User: chuang * Date: 17-1-14 * Time: 下午4:29 */ namespace App\H ...

  4. [NSDate distantPast]使用

    本文转载至 http://blog.sina.com.cn/s/blog_5f1967e00101ge0i.html  使用下面的方法: 关闭定时器不能使用invalidate方法,应该使用下面的方法 ...

  5. Oracle raw数据类型

    RAW的声明方式为RAW(L),L为长度,以字节为单位,它存数的是16进制的数据.作为数据库列最大2000,作为变量最大32767字节. RAW类型的好处就是:在网络中的计算机之间传输 RAW 数据时 ...

  6. 最详细的PHP flush()与ob

    buffer ---- flush()buffer是一个内存地址空间,Linux系统默认大小一般为4096(1kb),即一个内存页.主要用于存储速度不同步的设备或者优先级不同的 设备之间传办理数据的区 ...

  7. recursion

    w recursion nexttoken

  8. ArcGIS Server Q&A

    持续更新.. 一. AGS Server10发布mobile data access 出现错误 问题描述: "ArcGIS Server: Configuration <name> ...

  9. 使用mybatis向oracle数据库插入数据异常

    遇到了使用mybatis向oracle数据库插入数据异常的问题, 具体的报错如下:org.springframework.jdbc.UncategorizedSQLException: ### Err ...

  10. Linux中的输出重定向

    标准输入输出: 键盘        /dev/stdin        0       标准输入 显示器    /dev/stdout      1       标准输出 显示器    /dev/st ...