#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. ASP.NET MVC系列:添加视图

    虽然在上一篇文章中我们知道通过控制器可以在浏览器输出HTML页面,但是这不是控制器主要干的事,因为页面上我为还要做很多好看的特效,页面展示的事情当然交给视图来做了:下面我们就来看看如何添加一个视图 添 ...

  2. C语言学习005:不能修改的字符串

    一段有问题的代码,你能看出来么? int main(){ char* msg="ABC"; msg[]=msg[]; puts(msg); ; } 编译这段代码并不会有什么问题,一 ...

  3. 优化Angular应用的性能

    MVVM框架的性能,其实就取决于几个因素: 监控的个数 数据变更检测与绑定的方式 索引的性能 数据的大小 数据的结构 我们要优化Angular项目的性能,也需要从这几个方面入手. 1. 减少监控值的个 ...

  4. Telerik UI For WinForms--关于RadGridView的列排序

    在使用RadGridView绑定数据后,我希望属性的显示顺序按继承层次显示,但实际是相反的.下面示例两个类: public class A { public string Astr { get; se ...

  5. html5学习笔记5--API Range对象(二)

    Range对象之cloneRange和cloneContents 代码效果如下 首次点击“选择内容“按钮提示如下 接着会显示 最后显示 以下为整个代码 <!DOCTYPE html> &l ...

  6. sqlserver中的循环遍历(普通循环和游标循环)

    sql 经常用到循环,下面介绍一下普通循环和游标循环 1.首先需要一个测试表数据Student

  7. 【Java每日一题】20161107

    package Nov2016; import java.util.List; public class Ques1107 { public static void main(String[] arg ...

  8. 修正 XE6 TListView 上方 SearchBok 右边的清除钮显示

    注意:XE7 已修正这个问题. Delphi Firemonkey TListView 提供了搜寻的功能,但在 XE6 以前的版本,可以显示右边的清除按钮,在 XE6 确消失了,这里提供一个修正的方案 ...

  9. Python 第二模块学习总结

    学习总结: 1.掌握对装饰器的用法 2.掌握生成器的用法 3.掌握迭代器的用法 4.熟悉Python内置函数 5.熟悉Python shutil/shelve/configparse/hashlib/ ...

  10. Scalaz(49)- scalaz-stream: 深入了解-Sink/Channel

    一个完整的scalaz-stream有以下几个部分组成:Source -> Transducer -> Sink,用直白文字来描述就是:“输入 -> 传换 -> 输出”.我们已 ...