NSFileManeger
#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的更多相关文章
随机推荐
- 研究 研究而已 java和.net的HashSet对比
各位看官,,我不是在引发战争,,我只是想知道事情的真想,我源之于,一段代码我需要实现C#和java的两个版本功能,才发现这一个对比.讨论问题的实质,为什么会出现这样的问题.java和C#都很优秀.请大 ...
- fastcgi安装
fastcgi安装 这里及以下的web服务器都是以nginx为例子和说明,php以5.3为例子. php-fpm fastcgi在服务器上会启动多个进程进行解析,这个时候就需要一个fastcgi的管理 ...
- Chrome开发者工具详解(4)-Profiles面板
Chrome开发者工具详解(4)-Profiles面板 如果上篇中的Timeline面板所提供的信息不能满足你的要求,你可以使用Profiles面板,利用这个面板你可以追踪网页程序的内存泄漏问题,进一 ...
- JQuery01
一:JQuery 1 JQuery知识 *:就是让我们学会调用JQ插件,其实内部就是对JS的封装. *:jquery里面有三个文件, 第2个和第3个其实里面的内容是一样的,只是第三个对其进行了压缩,使 ...
- 【转】nginx+iis实现负载均衡
最近在研究分布式系统架构方面的知识,包括负载均衡,数据库读写分离,分布式缓存redis等.本篇先从负载均衡服务架构入手,关于负载均衡百度百科的定义如下:负载均衡,英文名称为Load Balance,其 ...
- C#串口通信—向串口发送数据,同步接收返回数据
最近写C#串口通信程序,系统是B/S架构.SerialPort类有一个DataReceived事件,用来接收串口返回的数据,但这种方式在C/S架构下很好用,但B/S就不好处理了.所以写了一个同步模式接 ...
- 基于MVC4+EasyUI的Web开发框架经验总结(6)--在页面中应用下拉列表的处理
在很多Web界面中,我们都可以看到很多下拉列表的元素,有些是固定的,有些是动态的:有些是字典内容,有些是其他表里面的名称字段:有时候引用的是外键ID,有时候引用的是名称文本内容:正确快速使用下拉列表的 ...
- 【C#】添加引用方式抛出和捕获干净的WebService异常
说明:[干净]指的是客户端在捕获WebService(下称WS)抛出的异常时,得到的ex.Message就是WS方法中抛出的异常消息,不含任何“杂质”. 前提:你对WS有编写权.就是说如果你调的是别人 ...
- .net IO异步和Producer/Consumer队列实现一分钟n次http请求
简介 最近工作中有一个需求:要求发送http请求到某站点获取相应的数据,但对方网站限制了请求的次数:一分钟最多200次请求. 搜索之后,在stackoverflow网站查到一个类似的问题..但里面用到 ...
- 【C#进阶系列】16 数组
首先提一下,个人在项目中已经很少用到数组了,更多的时候使用List<>. 数组大小固定,如果只是用来存放数据,专门用来读取,更改当然方便.但是更多的时候我们需要进行增删改,这个时候用Lis ...