NSFileManager 的基本使用方法

本方法已有个人总结,

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        NSString *path=@"/Users/tang/Desktop/123";

        NSString *pathtext=@"/Users/tang/Desktop/123/123.txt";

        //用于获取单例对象,快速创建对象的方法,

        //单例对象:在程序运行期间只有一个对象,

        NSFileManager *fm=[NSFileManager defaultManager];

        //文件是否存在

        //BOOL isYes=[fm fileExistsAtPath:path];

        BOOL isDictory=NO;

        BOOL isYes=[fm fileExistsAtPath:path isDirectory:&isDictory];

        //如果存在判断是否是一个目录

        if(isYes)

        {

            NSLog(@"文件存在!");

            if(isDictory)

            {

                NSLog(@"是一个目录!!");

                isDictory=NO;

            }

            isYes=NO;

        }

        //判断文件权限.可读,可写,是否可删除

        isYes=[fm isReadableFileAtPath:path];

        [fm isWritableFileAtPath:path];

        [fm isDeletableFileAtPath:path];

        //获取文件属性的信息

        NSDictionary *fdict=[fm attributesOfFileSystemForPath:path error:nil];

        NSLog(@"%@",fdict);

        

        NSLog(@"%@",[fdict fileGroupOwnerAccountName]);

        //获取指定目录下的文件及子目录

        NSArray *arr=[fm subpathsAtPath:path];

        NSLog(@"%@",arr);

        arr=[fm subpathsOfDirectoryAtPath:path error:nil]; //不用递归的模式进行遍历

        NSLog(@"%@",arr);

        //获取指定目录下的子目录,不含子目录下的目录

        NSArray *current=[fm contentsOfDirectoryAtPath:path error:nil];

        NSLog(@"%@",current);

        //

        NSData* data= [fm contentsAtPath:pathtext];

        

        NSLog(@"%@",data);

        //用法深入

        //创建 文件/目录

        NSString *cuStr=@"/users/tang/desktop";

        //第二个参数如果为YES,不存在desktop的情况下也创建desktop,即自动创建路径中缺少的目录

        NSDictionary *dir=nil;

        BOOL isSucceed=[fm createDirectoryAtPath:cuStr withIntermediateDirectories:YES attributes:dir error:nil];

        if(isSucceed)

        {

            NSLog(@"创建成功");

            isSucceed=NO;

        }

        //创建文件

        NSString *content=@"sshhduoolnalsdfoashdfnai";

        NSData *da=[content dataUsingEncoding:NSUTF8StringEncoding];

        //NSData *da2=[NSData dataWithBytes:<#(const void *)#> length:<#(NSUInteger)#>];

        isSucceed=[fm createFileAtPath:cuStr contents:da attributes:nil];

        if(isSucceed)

        {

            NSLog(@"文件创建成功");

            isSucceed=NO;

        }

        //复制文件,复制文件的时候复制到的文件夹下一定要有文件,不会自动创建;

        //[fm copyItemAtPath:<#(NSString *)#> toPath:<#(NSString *)#> error:<#(NSError *__autoreleasing *)#>

        //[fm copy];

        

        //移动文件

        //[fm moveItemAtPath:<#(NSString *)#> toPath:<#(NSString *)#> error:<#(NSError *__autoreleasing *)#>]

        

        //删除文件

        //[fm removeItemAtPath:<#(NSString *)#> error:<#(NSError *__autoreleasing *)#>];

        

        

//        NSString *path=@"/Users/tang/Desktop/123/22/11.txt";

//        NSString *pathtext=@"/Users/tang/Desktop/123/223.txt";

//        //用于获取单例对象,快速创建对象的方法,

//        //单例对象:在程序运行期间只有一个对象,

//        NSFileManager *fm=[NSFileManager defaultManager];

//        //文件下载:断点续传//两个文件管理的类,一个NSFileManager,另一个:?????????????

//        NSString *content=@"sshhduoolnalsdfoashdfnai";

//        NSData *da=[content dataUsingEncoding:NSUTF8StringEncoding];

//        bool isSucceed=[fm createFileAtPath:pathtext contents:da attributes:nil];

//        //[fm copy];不可以用copy,因为NSDileManager没有遵守NSCopy协议

//        if(isSucceed)

//        {

//            NSLog(@"成功");

//            [fm copyItemAtPath:pathtext toPath:path error:nil];

//        }

    }

    return 0;

}

原文地址:https://www.cnblogs.com/tangranyang/p/4486318.html