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这个文件\文件夹的属性
本文介绍如何使用NSFileManager在iOS中进行文件和目录的创建、删除、重命名等操作,并展示了如何遍历目录、移动和复制文件。
5232

被折叠的 条评论
为什么被折叠?



