#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. 关于Entity Framework中的Attached报错的完美解决方案

    我们在使用Entity Framework进行CRUD时,为了提升查询效率,一般均会启动NoTracking,即不追踪变化,设置代码如下: //这是DB First模式下设置方法: aTestEnti ...

  2. 使用Spark分析拉勾网招聘信息(四): 几个常用的脚本与图片分析结果

    概述 前一篇文章,已经介绍了BMR的基础用法,再结合Spark和Scala的文档,我想应该是可以开始你的数据分析之路的.这一篇文章,着重进行一些简单的思路上的引导和分析.如果你分析招聘数据时,卡在了某 ...

  3. php面向对象常见的专业术语

    类 − 定义了一件事物的抽象特点.类的定义包含了数据的形式以及对数据的操作. 对象 − 是类的实例. 成员变量 − 定义在类内部的变量.该变量的值对外是不可见的,但是可以通过成员函数访问,在类被实例化 ...

  4. Dapper学习 - Dapper.Rainbow(二) - Update/Delete

    上一篇介绍了Rainbow的Create方法, 这里就来介绍一下Update方法吧, 毕竟新增和修改是双胞兄弟嘛. 一.Update 1. 测试代码: var conStr = Configurati ...

  5. C# 字典 Dictionary 转 JSON 格式遍历

    键值对 直接 遍历就行 var str = "{\"22222\":\"DL00019\",\"123\":\"DL00 ...

  6. 二路归并排序算法实现-完整C语言程序

    /*********************************************************************************************** 1.设 ...

  7. java中实现同步的两种方式:syschronized和lock的区别和联系

    Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用synchronized 方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步问题,我 ...

  8. An Introduction to Stored Procedures in MySQL 5

    https://code.tutsplus.com/articles/an-introduction-to-stored-procedures-in-mysql-5--net-17843 MySQL ...

  9. 练习使用markdown编辑

    markdown纯文本编辑语言加粗,斜体Core Java 这是一篇学习了markdown编辑之后的练习 无序列表 1 2 > 怕什么真理无穷,进一寸有一寸的欢喜! 以下是代码的引用 class ...

  10. 2016暑假多校联合---Another Meaning

    2016暑假多校联合---Another Meaning Problem Description As is known to all, in many cases, a word has two m ...