NSFileManager
一 初步认识NSFileManager
(1)是什么:文件管理器,是对文件和目录操作的对象,NSFileHandle是对文件内容的操作
(2)如何创建对象:NSFileManager是单例模式,借助放在静态数据区的指针实现单例模式,
,所以永远返回的是同一个对象
NSFileManager *fileManager = [NSFileManager defaultManager];
如何验证是同一个对象:
NSFileManager *fileManager1 = [NSFileManager defaultManager];
NSFileManager *fileManager2 = [NSFileManager defaultManager];
NSLog(@"%@", fileManager1);
NSLog(@"%@", fileManager2);
结果是:<NSFileManager: 0x8b30470>
< NSFileManager: 0x8b30470>
二我们已经得到了一个对象, 想让它做什么的前提:
(1)有一个地址,让对象知道去哪做:
iOS下获得沙盒路径:
NSString *path1 = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/test1"];
NSString *path2 = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/test2"];
三:这个对象能做什么
(1)指定路径下文件是否存在
BOOL isExists1 = [fileManager isExecutableFileAtPath:path1];
if (isExists1) NSLog(@"YES");
else NSLog(@"NO”);
(2)获文件的亚信息
NSDictionary *dic = [fileManager attributesOfItemAtPath:path1 error:nil];
NSLog(@"dic %@",dic);
//获取文件的大小
NSLog(@"%@",[dict objectForKey:@"NSFileSize"]);
//获取文件的类型
NSLog(@"%@",[dict objectForKey:@"NSFileType"]);
//NSFileModificationDate 获取文件的修改时间
NSDate *date =[dic objectForKey:NSFileModificationDate];
(3)
转载(1)
-(NSData *)contentsAtPath:path | 从path所代表的文件中读取数据 |
-(BOOL)createFileAtPath:path contents:(BOOL)data attributes:attr | 将数据写入文件 |
-(BOOL)removeFileAtPath:path handler:handler | 将path所代表的文件删除 |
-(BOOL)movePath:from toPath:to handler:handler | 移动或者重命名文件,to所代表的文件不能是已经存在的文件 |
-(BOOL)copyPath:from toPath:to handler:handler | 复制文件,to所代表的文件不能是已经存在的文件 |
-(BOOL)contentsEqualAtPath:path1 andPath:path2 | 比较path1和path2所代表的文件 |
-(BOOL)fileExistsAtPath:path | 检查path所代表的文件是否存在 |
-(BOOL)isReadableFileAtPath:path | 检查path所代表的文件是否存在、是否可读 |
-(BOOL)isWritableFileAtPath:path | 检查path所代表的文件是否存在、是否可写 |
-(NSDictionary *)fileAttributesAtPath:path traverseLink:(BOOL)flag | 获取path所代表的文件属性 |
-(BOOL)changeFileAttributes:attr atPath:path | 改变文件属性 |
对于NSFileManager,文件或目录是使用文件的路径名唯一标识的。每一个路径名都是一个NSString对象,它可以是相对路径名,也可以是完整路径名。
相对路径名是相对于当前目录的路径名。所以,文件名file.m意味着当前目录中的file.m。斜线字符用于隔开路径中的目录列表。
完整路径名,也称绝对路径名,以斜线“/”开头,斜线实际上就是一个目录,称为 根目录。
这个特殊字符(~)用作用户主目录的缩写。点“ . ”表示当前目录,两点“ .. ”表示父目录