#define PATH @"/Users/wenhua/testdir"

// 删除, 复制 剪切  这些行为都是管理文件的行为

//创建文件

void createFile(void)

{

//文件管理器类, 一个app中只需要一个这样的管理器对象,即单例

NSFileManager *fm =[NSFileManager defaultManager];

//创建文件

//    fm createFileAtPath:<#(NSString *)#> contents:<#(NSData *)#> attributes:<#(NSDictionary *)#>

[fm createFileAtPath:[NSString stringWithFormat:@"%@%@",PATH,@"/first.txt"] contents:[@"abcde" dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];

}

//创建文件夹

void createDir(void)

{

//文件管理器类, 一个app中只需要一个这样的管理器对象,即单例

NSFileManager *fm =[NSFileManager defaultManager];

//创建文件夹

//    fm createDirectoryAtPath:<#(NSString *)#> withIntermediateDirectories:<#(BOOL)#> attributes:<#(NSDictionary *)#> error:<#(NSError *__autoreleasing *)#>

NSError *error=nil;

[fm createDirectoryAtPath:[NSString stringWithFormat:@"%@%@",PATH,@"/middle/newdir"] withIntermediateDirectories:YES attributes:nil error:&error];

if (error!=nil) {

NSLog(@"%@",error);

return;

}

}

//删除文件

void rmFile(void)

{

//文件管理器类, 一个app中只需要一个这样的管理器对象,即单例

NSFileManager *fm =[NSFileManager defaultManager];

//删除

//    fm removeItemAtPath:<#(NSString *)#> error:<#(NSError *__autoreleasing *)#>

NSError *error=nil;

[fm removeItemAtPath:[NSString stringWithFormat:@"%@%@",PATH,@"/first.txt"] error:&error];

if (error) {

NSLog(@"%@",error);

}

}

//复制文件

void cpFile(void)

{

//文件管理器类, 一个app中只需要一个这样的管理器对象,即单例

NSFileManager *fm =[NSFileManager defaultManager];

//复制

//    fm copyItemAtPath:<#(NSString *)#> toPath:<#(NSString *)#> error:<#(NSError *__autoreleasing *)#>

NSError* error=nil;

//复制文件

[fm copyItemAtPath:@"/Users/xiaozai/Desktop/test.plist" toPath:[NSString stringWithFormat:@"%@%@",PATH,@"/test.plist"] error:&error];

if (error) {

NSLog(@"%@",error);

}

//复制文件夹

[fm copyItemAtPath:@"/Users/xiaozai/Desktop/deskdir" toPath:[NSString stringWithFormat:@"%@%@",PATH,@"/deskdir"] error:&error];

if (error) {

NSLog(@"%@",error);

}

}

//剪切文件

void mvFile(void)

{

//剪切,移动

//    fm moveItemAtPath:<#(NSString *)#> toPath:<#(NSString *)#> error:<#(NSError *__autoreleasing *)#>

//文件管理器类, 一个app中只需要一个这样的管理器对象,即单例

NSFileManager *fm =[NSFileManager defaultManager];

NSError *error=nil;

[fm moveItemAtPath:[NSString stringWithFormat:@"%@%@",PATH,@"/test.plist"] toPath:@"/Users/xiaozai/Desktop/test.plist" error:&error];

if (error) {

NSLog(@"%@",error);

}

[fm moveItemAtPath:[NSString stringWithFormat:@"%@%@",PATH,@"/deskdir"] toPath:@"/Users/xiaozai/Desktop/deskdir" error:&error];

if (error) {

NSLog(@"%@",error);

}

}

// 文件是否存在于某个路径

bool isFileExistAtPath()

{

NSString *path = [NSString stringWithFormat:@"%@/file.zip", NSHomeDirectory()];

NSFileManager *fm = [ NSFileManager defaultManager];

return [fm fileExistsAtPath:path];

}

// 若创建未出错,那一定就会返回TRUE了

//遍历某个目录

void travelListDir(void)

{

NSFileManager *fm = [ NSFileManager defaultManager];

NSError* error=nil;

//                       浅层遍历目录

NSArray* retArray =[fm contentsOfDirectoryAtPath:PATH error:&error];

if (error) {

NSLog(@"%@",error);

}

NSLog(@"retArray:%@",retArray);

//  深层遍历目录

NSArray * array2= [fm subpathsOfDirectoryAtPath:@"/Users/wenhua/work/oc/19day" error:&error];

NSEnumerator * enumerator = [ array2 objectEnumerator];

id obj;

while (obj=[enumerator nextObject]) {

NSLog(@"%@",obj);

}

}

void otherMethods(void)

{

NSFileManager *fm = [ NSFileManager defaultManager];

//获取app的当前工作路径

NSLog(@"本程序的当前工作路径为:%@",[fm currentDirectoryPath]);

//传一个文件(夹)的绝对路径,得到一个文件(夹)名

NSLog(@"%@",[fm displayNameAtPath:PATH]);

}

NSFileManeger的更多相关文章

随机推荐

  1. 研究 研究而已 java和.net的HashSet对比

    各位看官,,我不是在引发战争,,我只是想知道事情的真想,我源之于,一段代码我需要实现C#和java的两个版本功能,才发现这一个对比.讨论问题的实质,为什么会出现这样的问题.java和C#都很优秀.请大 ...

  2. fastcgi安装

    fastcgi安装 这里及以下的web服务器都是以nginx为例子和说明,php以5.3为例子. php-fpm fastcgi在服务器上会启动多个进程进行解析,这个时候就需要一个fastcgi的管理 ...

  3. Chrome开发者工具详解(4)-Profiles面板

    Chrome开发者工具详解(4)-Profiles面板 如果上篇中的Timeline面板所提供的信息不能满足你的要求,你可以使用Profiles面板,利用这个面板你可以追踪网页程序的内存泄漏问题,进一 ...

  4. JQuery01

    一:JQuery 1 JQuery知识 *:就是让我们学会调用JQ插件,其实内部就是对JS的封装. *:jquery里面有三个文件, 第2个和第3个其实里面的内容是一样的,只是第三个对其进行了压缩,使 ...

  5. 【转】nginx+iis实现负载均衡

    最近在研究分布式系统架构方面的知识,包括负载均衡,数据库读写分离,分布式缓存redis等.本篇先从负载均衡服务架构入手,关于负载均衡百度百科的定义如下:负载均衡,英文名称为Load Balance,其 ...

  6. C#串口通信—向串口发送数据,同步接收返回数据

    最近写C#串口通信程序,系统是B/S架构.SerialPort类有一个DataReceived事件,用来接收串口返回的数据,但这种方式在C/S架构下很好用,但B/S就不好处理了.所以写了一个同步模式接 ...

  7. 基于MVC4+EasyUI的Web开发框架经验总结(6)--在页面中应用下拉列表的处理

    在很多Web界面中,我们都可以看到很多下拉列表的元素,有些是固定的,有些是动态的:有些是字典内容,有些是其他表里面的名称字段:有时候引用的是外键ID,有时候引用的是名称文本内容:正确快速使用下拉列表的 ...

  8. 【C#】添加引用方式抛出和捕获干净的WebService异常

    说明:[干净]指的是客户端在捕获WebService(下称WS)抛出的异常时,得到的ex.Message就是WS方法中抛出的异常消息,不含任何“杂质”. 前提:你对WS有编写权.就是说如果你调的是别人 ...

  9. .net IO异步和Producer/Consumer队列实现一分钟n次http请求

    简介 最近工作中有一个需求:要求发送http请求到某站点获取相应的数据,但对方网站限制了请求的次数:一分钟最多200次请求. 搜索之后,在stackoverflow网站查到一个类似的问题..但里面用到 ...

  10. 【C#进阶系列】16 数组

    首先提一下,个人在项目中已经很少用到数组了,更多的时候使用List<>. 数组大小固定,如果只是用来存放数据,专门用来读取,更改当然方便.但是更多的时候我们需要进行增删改,这个时候用Lis ...