NSFileManager的用法

本文介绍如何使用NSFileManager在iOS中进行文件和目录的创建、删除、重命名等操作,并展示了如何遍历目录、移动和复制文件。

iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)

#define PATH @"/Users/lijun/Desktop"

一、在桌面上创建目录

       //创建文件管理器

       NSFileManager *fm = [NSFileManager defaultManager];

       NSError *error = nil;

        

        //创建目录  PATH下创建dir目录

        NSString *testDirectory = [NSString stringWithFormat:@"%@/dir",PATH];

        NSString *dir2 = [NSString stringWithFormat:@"%@/dir2",PATH];

        [fm createDirectoryAtPath:testDirectory withIntermediateDirectories:YES attributes:nil error:nil];

        [fm createDirectoryAtPath:dir2 withIntermediateDirectories:YES attributes:nil error:nil];

        //createIntermediates为YES代表自动创建中间的文件夹


启动程序,这时候目录就创建了。



        

二、在dir目录下创建文件     

        //创建文件怎么办呢?接着上面的代码 testPath要用stringByAppendingPathComponent拼接上你要生成的文件名,比如test1.txt。这样才能在dir下写入文件。testDirectory是上面代码生成的路径哦,不要忘了。我往dir文件夹里写入三个文件,test1.txt ,test2.txt,test3.txt。内容都是just do it

        

       NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test1.txt"];

       NSString *testPath2 = [testDirectory stringByAppendingPathComponent:@"test2.txt"];

       NSString *testPath3 = [testDirectory stringByAppendingPathComponent:@"test3.txt"];

        

       NSString *string = @"just do it";

        [fm createFileAtPath:testPath contents:[string dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];

        [fm createFileAtPath:testPath2 contents:[string dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];

        [fm createFileAtPath:testPath3 contents:[string dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];


看上面的图,三个文件都出来了,内容也是对的。

        

三、获取目录里所有文件名 

       NSArray *array = [fm contentsOfDirectoryAtPath:PATH error:&error];//这个是浅度遍历,PATH是个目录,意思是查看指定路径的文件


       NSArray *array1 = [fm subpathsOfDirectoryAtPath:PATH error:&error];//这个是深度遍历,隐藏的文件也打印出来了


       NSArray *array2 = [fm subpathsAtPath:PATH];

  array1 和array2两种方法是等效的,隐藏文件也打印出来了。

        

       //删除文件

        [fm removeItemAtPath:testPath error:&error];

        //拷贝文件

        [fm copyItemAtPath:testPath2 toPath:[NSString stringWithFormat:@"%@/test2.txt",dir2] error:&error];

        //拷贝目录

         NSString *dir3 = [NSString stringWithFormat:@"%@/dir3",PATH];

        [fm copyItemAtPath:testDirectory toPath:dir3 error:&error];

        //移动目录

        [fm moveItemAtPath:testDirectory toPath:[NSString stringWithFormat:@"%@/testDirectory",dir2] error:&error];


我们看到testDirectory目录就移到dir2目录下了。

//移动文件

[fm moveItemAtPath:[NSString stringWithFormat:@"%@/test3.txt",dir3] toPath:[NSString stringWithFormat:@"%@/test3.txt",dir2] error:&error];


这样,dir3下面的test3.txt就称到dir2目录下了。

       if (error)

        {

           NSLog(@"%@",error);

           exit(-1);

        }

- (BOOL)fileExistsAtPath:(NSString *)path;//path这个文件/文件夹是否存在

- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory;//path这个文件/文件夹是否存在,isDirectory代表是否为文件夹

- (BOOL)isReadableFileAtPath:(NSString *)path;//这个文件\文件夹是否可读

- (BOOL)isWritableFileAtPath:(NSString *)path;//path这个文件\文件夹是否可写

- (BOOL)isDeletableFileAtPath:(NSString *)path;//path这个文件\文件夹是否可删除

- (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error;

获得path这个文件\文件夹的属性





评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值