美文网首页
NSFileManager(文件管理)

NSFileManager(文件管理)

作者: 帥陽 | 来源:发表于2017-02-08 15:25 被阅读58次

    1>获取沙盒目录

    - (NSString *)getDocumentsPath

    {

    //获取Documents路径

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *path = [paths objectAtIndex:0];

    NSLog(@"path:%@", path);

    return path;

    }

    2>创建文件夹

    -(void)createDirectory{

    NSString *documentsPath =[self getDocumentsPath];

    NSFileManager *fileManager = [NSFileManager defaultManager];

    NSString *iOSDirectory = [documentsPath stringByAppendingPathComponent:@"iOS"];

    BOOL isSuccess = [fileManager createDirectoryAtPath:iOSDirectory withIntermediateDirectories:YES attributes:nil error:nil];

    if (isSuccess) {

    NSLog(@"success");

    } else {

    NSLog(@"fail");

    }

    }

    3>创建文件

    -(void)createFile{

    NSString *documentsPath =[self getDocumentsPath];

    NSFileManager *fileManager = [NSFileManager defaultManager];

    NSString *iOSPath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

    BOOL isSuccess = [fileManager createFileAtPath:iOSPath contents:nil attributes:nil];

    if (isSuccess) {

    NSLog(@"success");

    } else {

    NSLog(@"fail");

    }

    }

    4>写文件

    -(void)writeFile{

    NSString *documentsPath =[self getDocumentsPath];

    NSString *iOSPath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

    NSString *content = @"我要写数据啦";

    BOOL isSuccess = [content writeToFile:iOSPath atomically:YES encoding:NSUTF8StringEncoding error:nil];

    if (isSuccess) {

    NSLog(@"write success");

    } else {

    NSLog(@"write fail");

    }

    }

    5>读取文件内容

    -(void)readFileContent{

    NSString *documentsPath =[self getDocumentsPath];

    NSString *iOSPath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

    NSString *content = [NSString stringWithContentsOfFile:iOSPath encoding:NSUTF8StringEncoding error:nil];

    NSLog(@"read success: %@",content);

    }

    6判断文件是否存在

    - (BOOL)isSxistAtPath:(NSString *)filePath{

    NSFileManager *fileManager = [NSFileManager defaultManager];

    BOOL isExist = [fileManager fileExistsAtPath:filePath];

    return isExist;

    }

    7>计算文件大小

    - (unsigned long long)fileSizeAtPath:(NSString *)filePath{

    NSFileManager *fileManager = [NSFileManager defaultManager];

    BOOL isExist = [fileManager fileExistsAtPath:filePath];

    if (isExist){

    unsigned long long fileSize = [[fileManager attributesOfItemAtPath:filePath error:nil] fileSize];

    return fileSize;

    } else {

    NSLog(@"file is not exist");

    return 0;

    }

    }

    8>计算整个文件中所有文件大小

    - (unsigned long long)folderSizeAtPath:(NSString*)folderPath{

    NSFileManager *fileManager = [NSFileManager defaultManager];

    BOOL isExist = [fileManager fileExistsAtPath:folderPath];

    if (isExist){

    NSEnumerator *childFileEnumerator = [[fileManager subpathsAtPath:folderPath] objectEnumerator];

    unsigned long long folderSize = 0;

    NSString *fileName = @"";

    while ((fileName = [childFileEnumerator nextObject]) != nil){

    NSString* fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];

    folderSize += [self fileSizeAtPath:fileAbsolutePath];

    }

    return folderSize / (1024.0 * 1024.0);

    } else {

    NSLog(@"file is not exist");

    return 0;

    }

    }

    9>删除文件

    -(void)deleteFile{

    NSString *documentsPath =[self getDocumentsPath];

    NSFileManager *fileManager = [NSFileManager defaultManager];

    NSString *iOSPath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

    BOOL isSuccess = [fileManager removeItemAtPath:iOSPath error:nil];

    if (isSuccess) {

    NSLog(@"delete success");

    }else{

    NSLog(@"delete fail");

    }

    }

    10>移动文件

    - (void)moveFileName

    {

    NSString *documentsPath =[self getDocumentsPath];

    NSFileManager *fileManager = [NSFileManager defaultManager];

    NSString *filePath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

    NSString *moveToPath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

    BOOL isSuccess = [fileManager moveItemAtPath:filePath toPath:moveToPath error:nil];

    if (isSuccess) {

    NSLog(@"rename success");

    }else{

    NSLog(@"rename fail");

    }

    }

    11>重命名

    - (void)renameFileName

    {

    //通过移动该文件对文件重命名

    NSString *documentsPath =[self getDocumentsPath];

    NSFileManager *fileManager = [NSFileManager defaultManager];

    NSString *filePath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

    NSString *moveToPath = [documentsPath stringByAppendingPathComponent:@"rename.txt"];

    BOOL isSuccess = [fileManager moveItemAtPath:filePath toPath:moveToPath error:nil];

    if (isSuccess) {

    NSLog(@"rename success");

    }else{

    NSLog(@"rename fail");

    }

    }

    相关文章

      网友评论

          本文标题:NSFileManager(文件管理)

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