NSFileManager的基本使用 - OC

作者: 以太死多 | 来源:发表于2015-09-05 11:26 被阅读4830次
  • 什么是NSFileManager?
    NSFileManager是用来管理文件系统的
    它可以用来进行常见的文件\文件夹操作(拷贝、剪切、创建等)

  • NSFileManager使用了单例模式singleton
    使用defaultManager方法可以获得那个单例对象
    [NSFileManager defaultManager]

    //NSFileManager 用于判断
    
    NSString *filePath = @"/Users/zhaoxiaohu/Desktop/arr.plist";
    
     NSString *filePath2 = @"/";
1) 判断文件是否存在
    //创建文件管理对象
    //调用defaultManager 创建一个文件管理的单例对象
    //单例对象:在程序运行期间,只有一个对象存在
    NSFileManager *fm = [NSFileManager defaultManager];
    // YES 存在   NO 不存在
    BOOL isYES = [fm fileExistsAtPath:filePath];
    NSLog(@"-->%d",isYES);
2) 判断是否是一个目录
    if(isYES){
        BOOL isDir;
    
        // 2) 判断是否是一个目录
        [fm fileExistsAtPath:filePath isDirectory:&isDir];
        
        if (isDir) {
            NSLog(@"这是一个目录");
        }else{
        
            NSLog(@"这不是一个目录");
        }
    
    }
3) 判断文件是否可读
    isYES = [fm isReadableFileAtPath:filePath];
4) 是否可写
    isYES = [fm isWritableFileAtPath:filePath2];
5) 是否可删除
    isYES = [fm isDeletableFileAtPath:filePath2];
    
             NSLog(@"-->%d",isYES);
6)获取文件的信息(属性)
    //创建文件对象
    NSFileManager *fm = [NSFileManager defaultManager];
    NSString *filePath = @"/Users/zhaoxiaohu/Desktop/arr.plist";
    
    NSString *dirPath = @"/Users/zhaoxiaohu/Desktop/a";
   
    //1)如何获取文件的信息(属性)
    NSDictionary *dict = [fm attributesOfItemAtPath:filePath error:nil];
    NSLog(@"%@",dict);
    NSLog(@"%@,%@",[dict objectForKey:@"NSFileOwnerAccountName"],dict[@"NSFileOwnerAccountName"]);
7)获取指定目录下文件及子目录
    //使用递归的方式 获取当前目录及子目录下的所有的文件及文件夹
    NSArray *subPaths = [fm subpathsAtPath:dirPath];
    
    //(推荐使用)subpathsOfDirectoryAtPath 不是使用递归的方式获取的
    subPaths = [fm subpathsOfDirectoryAtPath:dirPath error:nil];
    NSLog(@"subPaths = %@",subPaths);
8)获取指定目录下的文件及目录信息(不在获取后代路径)
    subPaths = [fm contentsOfDirectoryAtPath:dirPath error:nil];
    NSLog(@"subPaths = %@",subPaths);
9)创建目录
   //创建文件管理对象
    NSFileManager *fm = [NSFileManager defaultManager];
    
    //如何创建目录 (路径  :/Users/zhaoxiaohu/Desktop/aaa)
    NSString *createDirPath = @"/Users/zhaoxiaohu/Desktop/aaa/ccc/bbb/love.txt";
    fm createDirectoryAtPath:@"路径" withIntermediateDirectories:YES/NO 创建路径的时候,YES自动创建路径中缺少的目录,NO的不会创建缺少的目录 attributes:属性的字典 error:错误对象
    
           BOOL isYES = [fm createDirectoryAtPath:createDirPath withIntermediateDirectories:YES attributes:nil error:nil];
   
    if (isYES) {
        NSLog(@"成功");
   }
10)创建文件
    //如何创建文件
    NSString *str = @"每当我错过一个女孩,我就向山上放一块砖,于是就有了长城";
    //writeToFile
    //fm createFileAtPath:@"路径" contents: NSData类型的数据 attributes:文件的属性的字典
    //创建NSData?   是一个处理二进制数据的类
    //NSString -----> NSData  (把NSString转化成NSData)
    
    NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
    BOOL isYes;
    // createFileAtPath 创建文件
    isYes = [fm createFileAtPath:createDirPath contents:data attributes:nil];
    NSLog(@"isYes = %d",isYes);
11)copy文件
    //如何copy文件
    NSString *targetPath = @"/Users/zhaoxiaohu/Desktop/aaa/ccc/love.txt";
    [fm copyItemAtPath:createDirPath toPath:targetPath error:nil];
    
     NSString *targetPath = @"/Users/zhaoxiaohu/Desktop/aaa/love.txt";
12)移动文件
    //如何移动文件
    [fm moveItemAtPath:createDirPath toPath:targetPath error:nil];
13)删除文件
    //如何删除文件
    [fm removeItemAtPath:targetPath error:nil];

相关文章

  • NSFileManager的基本使用 - OC

    什么是NSFileManager?NSFileManager是用来管理文件系统的它可以用来进行常见的文件\文件夹操...

  • NSFileManager基本使用

    NSFileManager 文件操作在开发中用到的比较少,最常用的就是计算缓存的大小,删除缓存目录下的文件之类的 ...

  • NSFileManager的基本使用

    沙盒机制 每一个iOS应用程序都会为自己创建一个文件系统目录,这个独立、封闭、安全的空间叫做沙盒。沙盒就是一种安全...

  • 【OC梳理】NSFileManager

    NSFileManager是OC中专门用于管理文件的类,可以对沙盒内的文件、文件夹进行操作,在做数据缓存时,可以使...

  • Quartz2D -2

    基本使用Demo OC

  • 10.3 OC - NSNumber/NSFileManager

    NSDictionary key:OC对象 value:不能是非OC对象 NSNumber 对数组进行一系列的操作...

  • iOS NSFileManager初探

    iOS NSFileManager初探 使用NSFileManager 文件系统接口 允许访问文件夹内容 创建,重...

  • NSFileManager 使用

    NSString *filePath=@"/Users/nlp/Desktop/NSString_Test_01/...

  • OC与H5交互

    OC与H5交互 1. 基本使用- OC调JS JS调OC 2.使用JavaScriptCore框架(ios7以后)...

  • NSFileManager的使用

网友评论

    本文标题:NSFileManager的基本使用 - OC

    本文链接:https://www.haomeiwen.com/subject/vialcttx.html