案例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. 003android初级篇之【转】Android开发中颜色的定义方法

    正好用到颜色的定义,但脑子里没有记住具体,转载一篇加强印象 1.使用Color类的常量,如: int color = Color.BLUE; // 创建一个蓝色 是使用Android提供的颜色 int ...

  2. Linq源代码阅读

    在 System.Core dotnet451\source\ndp\fx\src\core\system\linq\enumerable.cs Where 和 Select 内 ,把数组和List分 ...

  3. 实体框架迁移,EntityFramework

    主要就是这个:http://msdn.microsoft.com/zh-cn/data/jj591621.aspx 下面这个是写得不错的,比较详细: 首先打开工具--->>>库程序包 ...

  4. matlab中双站异面直线法定位目标

    calc.m %% 参数信息初始化 [x1,y1,z1]=deal(); [x2,y2,z2]=deal(,,); m1=/; n1=/; p1=^(/)/; m2=; n2=-^(/)/; p2=^ ...

  5. 非常实用的JavaScript小技巧

    使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是否有一个有效值,如果存在就返回true值.为了做这样的验证,我们可以使用!!操作符来实现是非常的方便与简单.对于变量可以使用 ...

  6. Java手记

    由于腾讯的MTA只有JAVA的demo,为了测试用php实现的加密算法是否正确,所有只能运行一下Java 配置环境:http://www.runoob.com/java/java-environmen ...

  7. PowerDesigner如何导出表到word的方法

    from:https://jingyan.baidu.com/article/295430f1c385970c7f005056.html PowerDesigner如何导出表到word的方法 听语音 ...

  8. Apache Nifi 开发

    Apache NiFi是由美国过国家安全局(NSA)贡献给Apache基金会的开源项目.其设计目标是自己主动化系统间的数据流.基于其工作流式的编程理念.NiFi很易于使用,强大.可靠及高可配置. 两个 ...

  9. 生产者——消费者模型的java代码实现

    生产者 import java.util.Random; public class Producer extends Thread { private Storage<Product> s ...

  10. csu1326(The contest)

    题目链接:传送门 题目思路:并查集加分组背包 #include <iostream> #include <cstdio> #include <cstdlib> #i ...