OC_NSFileManager
案例1:通过文件扩展名进行搜索文件
- NSFileManager *manager = [NSFileManager defaultManager];
- /*
- 在Mac OS X系统有一个代表主目录的速记符号~(也成为代字符)。
- stringByExpandingTildeInPath将~替换成当前用户的主目录。
- enumeratorAtPath:返回一个NSDictionaryEnumerator,它是NSEnumerator的子类。每次在这个枚举器对象中调用nextObject时,都会返回该目录中一个文件的另一个路径。这个方法也能搜索子目录。
- */
- NSString *home = [@"~" stringByExpandingTildeInPath];
- //
- NSDirectoryEnumerator *direnum = [manager enumeratorAtPath:home];
- NSMutableArray *files = [NSMutableArray arrayWithCapacity:32];
- NSString *filename;
- NSLog(@"请输入要查询的文件类型:");
- char extension[10];
- scanf("%s",extension);
- //将C语言字符串转OC字符串
- NSString *exten = [NSString stringWithFormat:@"%s",extension];
- while (filename = [direnum nextObject]) {
- if ([[filename pathExtension]isEqualTo:exten]) {
- [files addObject:filename];
- }
- }
- NSEnumerator *fileenum;
- fileenum = [files objectEnumerator];
- while (filename =[fileenum nextObject]) {
- NSLog(@"%@",filename);
- }
案例2:通过文件名进行搜索文件
- #import <Foundation/Foundation.h>
- int main(int argc, const char * argv[]) {
- @autoreleasepool {
- NSFileManager *manager = [NSFileManager defaultManager];
- /*
- 在Mac OS X系统有一个代表主目录的速记符号~(也成为代字符)。
- stringByExpandingTildeInPath将~替换成当前用户的主目录。
- enumeratorAtPath:返回一个NSDictionaryEnumerator,它是NSEnumerator的子类。每次在这个枚举器对象中调用nextObject时,都会返回该目录中一个文件的另一个路径。这个方法也能搜索子目录。
- */
- NSString *home = [@"~" stringByExpandingTildeInPath];
- //获取主目录下的文件路径
- NSDirectoryEnumerator *direnum = [manager enumeratorAtPath:home];
- //声明一个足够大的数组来保存搜索到的文件路径
- NSMutableArray *files = [NSMutableArray arrayWithCapacity:100];
- NSString *path;
- NSLog(@"请输入要查询的文件名:");
- char fileName[10];
- scanf("%s",fileName);
- //字符串转NSString
- NSString *exten = [NSString stringWithUTF8String:fileName];
- while (path = [direnum nextObject]) {
- //对路径进行分割
- NSArray *array = [path pathComponents];
- NSString *obj;
- for(obj in array)
- {
- //对路径的分割部分进行检索,比对,如果等于要输入的文件名,进行另外保存
- if ([obj isEqualTo:exten]) {
- [files addObject:path];
- break;
- }
- }
- }
- //遍历搜索结果
- for(id obj in files)
- {
- NSLog(@"%@",obj);
- }
- }
- return 0;
- }
OC_NSFileManager的更多相关文章
随机推荐
- tonymillion/Reachability的使用
tonymillion/Reachability是GitHub上的一个开源工具类,目測是依据Apple的Reachability Demo改写而成. 该类能够測试到某一网络.主机等的可达性,支持Blo ...
- Linux 超级守护进程 xinetd
在Linux中,守护进程有两种方式,一种是svsy方式,一种是xinetd方式(超级守护进程). 每个守护进程都会有一个脚本,可以理解成工作配置文件,守护进程的脚本需要放在指定位置,独立启动守护进程: ...
- openstack组件通讯端口定义
openstack 组件通讯是通过ZeroMQ+ceilometer发送组件调用信息,具体是通过TCP通讯,发送数据和接收数据是用同一个端口(在配置文件指定),下面通过代码稍作解析: IceHouse ...
- JavaScript 初步认识
首先呢 要成为WEB全栈工程师呢 JavaScript 是必须要会的 高级技术看自身兴趣爱好,但是基础必须掌握 因为有良好的基础学习jQuery会比较轻松. js是一门轻量的脚本语言 我学它主要目的是 ...
- POJ1365 Prime Land【质因数分解】【素数】【水题】
题目链接: http://poj.org/problem?id=1365 题目大意: 告诉你一个数的质因数x的全部底数pi和幂ei.输出x-1的质因数的全部底数和幂 解题思路: 这道题不难.可是题意特 ...
- Activity四种启动方式
Activity启动方式有四种,分别是: standardsingleTopsingleTasksingleInstance 可以根据实际的需求为Activity设置对应的启动模式,从而可以避免创建大 ...
- js引入方式的弹框方法2
html代码: <!DOCTYPE html> <html lang="zh-CN"> <head> <meta http-equiv=& ...
- jfinal实现上传功能
首先,jsp页面:由于设置enctype="multipart/form-data",所以form里面的input的值以2进制的方式传过去. <form id="f ...
- 【转】IBM PowerVM虚拟化技术笔记
1. 从CPU虚拟化的角度, 分区(partition)可以分成两大类:Micro-partition和Dedicated-procesor.前者可以将物理处理器以0.01的 粒度分配给微分区,分区创 ...
- Wireshark网络分析工具(一)
关于Wireshark,熟悉网络或网络性能方面的同学应该知道,使用Wireshark工具通过抓取数据包,对系统网络问题进行分析,该工具简单.易用.易学! 百度百科上面是这样描述的:Wireshark( ...