• iOS中NSFileManager文件常用操作整合


    //获取Document路径
    + (NSString *)getDocumentPath
    {
        NSArray *filePaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        return [filePaths objectAtIndex:0];
    }
    
    //获取Library路径
    + (NSString *)getLibraryPath
    {
        NSArray *filePaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
        return [filePaths objectAtIndex:0];
    }
    
    //获取应用程序路径
    + (NSString *)getApplicationPath
    {
        return NSHomeDirectory();
    }
    
    //获取Cache路径
    + (NSString *)getCachePath
    {
        NSArray *filePaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
        return [filePaths objectAtIndex:0];
    }
    
    //获取Temp路径
    + (NSString *)getTempPath
    {
        return NSTemporaryDirectory();
    }
    
    //判断文件是否存在于某个路径中
    + (BOOL)fileIsExistOfPath:(NSString *)filePath
    {
        BOOL flag = NO;
        NSFileManager *fileManager = [NSFileManager defaultManager];
        if ([fileManager fileExistsAtPath:filePath]) {
            flag = YES;
        } else {
            flag = NO;
        }
        return flag;
    }
    
    //从某个路径中移除文件
    + (BOOL)removeFileOfPath:(NSString *)filePath
    {
        BOOL flag = YES;
        NSFileManager *fileManage = [NSFileManager defaultManager];
        if ([fileManage fileExistsAtPath:filePath]) {
            if (![fileManage removeItemAtPath:filePath error:nil]) {
                flag = NO;
            }
        }
        return flag;
    }
    
    //从URL路径中移除文件
    - (BOOL)removeFileOfURL:(NSURL *)fileURL
    {
        BOOL flag = YES;
        NSFileManager *fileManage = [NSFileManager defaultManager];
        if ([fileManage fileExistsAtPath:fileURL.path]) {
            if (![fileManage removeItemAtURL:fileURL error:nil]) {
                flag = NO;
            }
        }
        return flag;
    }
    
    //创建文件路径
    +(BOOL)creatDirectoryWithPath:(NSString *)dirPath
    {
        BOOL ret = YES;
        BOOL isExist = [[NSFileManager defaultManager] fileExistsAtPath:dirPath];
        if (!isExist) {
            NSError *error;
            BOOL isSuccess = [[NSFileManager defaultManager] createDirectoryAtPath:dirPath withIntermediateDirectories:YES attributes:nil error:&error];
            if (!isSuccess) {
                ret = NO;
                NSLog(@"creat Directory Failed. errorInfo:%@",error);
            }
        }
        return ret;
    }
    
    //创建文件
    + (BOOL)creatFileWithPath:(NSString *)filePath
    {
        BOOL isSuccess = YES;
        NSFileManager *fileManager = [NSFileManager defaultManager];
        BOOL temp = [fileManager fileExistsAtPath:filePath];
        if (temp) {
            return YES;
        }
        NSError *error;
        //stringByDeletingLastPathComponent:删除最后一个路径节点
        NSString *dirPath = [filePath stringByDeletingLastPathComponent];
        isSuccess = [fileManager createDirectoryAtPath:dirPath withIntermediateDirectories:YES attributes:nil error:&error];
        if (error) {
            NSLog(@"creat File Failed. errorInfo:%@",error);
        }
        if (!isSuccess) {
            return isSuccess;
        }
        isSuccess = [fileManager createFileAtPath:filePath contents:nil attributes:nil];
        return isSuccess;
    }
    
    //保存文件
    + (BOOL)saveFile:(NSString *)filePath withData:(NSData *)data
    {
        BOOL ret = YES;
        ret = [self creatFileWithPath:filePath];
        if (ret) {
            ret = [data writeToFile:filePath atomically:YES];
            if (!ret) {
                NSLog(@"%s Failed",__FUNCTION__);
            }
        } else {
            NSLog(@"%s Failed",__FUNCTION__);
        }
        return ret;
    }
    
    //追加写文件
    + (BOOL)appendData:(NSData *)data withPath:(NSString *)path
    {
        BOOL result = [self creatFileWithPath:path];
        if (result) {
            NSFileHandle *handle = [NSFileHandle fileHandleForWritingAtPath:path];
            [handle seekToEndOfFile];
            [handle writeData:data];
            [handle synchronizeFile];
            [handle closeFile];
            return YES;
        } else {
            NSLog(@"%s Failed",__FUNCTION__);
            return NO;
        }
    }
    
    //获取文件
    + (NSData *)getFileData:(NSString *)filePath
    {
        NSFileHandle *handle = [NSFileHandle fileHandleForReadingAtPath:filePath];
        NSData *fileData = [handle readDataToEndOfFile];
        [handle closeFile];
        return fileData;
    }
    
    //读取文件
    + (NSData *)getFileData:(NSString *)filePath startIndex:(long long)startIndex length:(NSInteger)length
    {
        NSFileHandle *handle = [NSFileHandle fileHandleForReadingAtPath:filePath];
        [handle seekToFileOffset:startIndex];
        NSData *data = [handle readDataOfLength:length];
        [handle closeFile];
        return data;
    }
    
    //移动文件
    + (BOOL)moveFileFromPath:(NSString *)fromPath toPath:(NSString *)toPath
    {
        NSFileManager *fileManager = [NSFileManager defaultManager];
        if (![fileManager fileExistsAtPath:fromPath]) {
            NSLog(@"Error: fromPath Not Exist");
            return NO;
        }
        if (![fileManager fileExistsAtPath:toPath]) {
            NSLog(@"Error: toPath Not Exist");
            return NO;
        }
        NSString *headerComponent = [toPath stringByDeletingLastPathComponent];
        if ([self creatFileWithPath:headerComponent]) {
            return [fileManager moveItemAtPath:fromPath toPath:toPath error:nil];
        } else {
            return NO;
        }
    }
    
    //拷贝文件
    +(BOOL)copyFileFromPath:(NSString *)fromPath toPath:(NSString *)toPath
    {
        NSFileManager *fileManager = [NSFileManager defaultManager];
        if (![fileManager fileExistsAtPath:fromPath]) {
            NSLog(@"Error: fromPath Not Exist");
            return NO;
        }
        if (![fileManager fileExistsAtPath:toPath]) {
            NSLog(@"Error: toPath Not Exist");
            return NO;
        }
        NSString *headerComponent = [toPath stringByDeletingLastPathComponent];
        if ([self creatFileWithPath:headerComponent]) {
            return [fileManager copyItemAtPath:fromPath toPath:toPath error:nil];
        } else {
            return NO;
        }
    }
    
    //获取文件夹下文件列表
    + (NSArray *)getFileListInFolderWithPath:(NSString *)path
    {
        NSFileManager *fileManager = [NSFileManager defaultManager];
        NSError *error;
        NSArray *fileList = [fileManager contentsOfDirectoryAtPath:path error:&error];
        if (error) {
            NSLog(@"getFileListInFolderWithPathFailed, errorInfo:%@",error);
        }
        return fileList;
    }
    
    //获取文件大小
    + (long long)getFileSizeWithPath:(NSString *)path
    {
        unsigned long long fileLength = 0;
        NSNumber *fileSize;
        NSFileManager *fileManager = [NSFileManager defaultManager];
        NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:path error:nil];
        if ((fileSize = [fileAttributes objectForKey:NSFileSize])) {
            fileLength = [fileSize unsignedLongLongValue];
        }
        return fileLength;
    
    //    NSFileManager* manager =[NSFileManager defaultManager];
    //    if ([manager fileExistsAtPath:path]){
    //        return [[manager attributesOfItemAtPath:path error:nil] fileSize];
    //    }
    //    return 0;
    }
    
    //获取文件创建时间
    + (NSString *)getFileCreatDateWithPath:(NSString *)path
    {
        NSString *date = nil;
        NSFileManager *fileManager = [NSFileManager defaultManager];
        NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:path error:nil];
        date = [fileAttributes objectForKey:NSFileCreationDate];
        return date;
    }
    
    //获取文件所有者
    + (NSString *)getFileOwnerWithPath:(NSString *)path
    {
        NSString *fileOwner = nil;
        NSFileManager *fileManager = [NSFileManager defaultManager];
        NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:path error:nil];
        fileOwner = [fileAttributes objectForKey:NSFileOwnerAccountName];
        return fileOwner;
    }
    
    //获取文件更改日期
    + (NSString *)getFileChangeDateWithPath:(NSString *)path
    {
        NSString *date = nil;
        NSFileManager *fileManager = [NSFileManager defaultManager];
        NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:path error:nil];
        date = [fileAttributes objectForKey:NSFileModificationDate];
        return date;
    }
  • 相关阅读:
    INFORMATION_SCHEMA.INNODB_LOCKS
    INFORMATION_SCHEMA.INNODB_TRX 详解
    用 Flask 来写个轻博客 (9) — M(V)C_Jinja 语法基础快速概览
    自助式BI对比评测:Tableau和FineBI
    4款最具影响力的自助式BI工具
    4款最具影响力的自助式BI工具
    用 Flask 来写个轻博客 (8) — (M)VC_Alembic 管理数据库结构的升级和降级
    用 Flask 来写个轻博客 (7) — (M)VC_models 的关系(many to many)
    zabbix 通过key 获取
    匿名hash
  • 原文地址:https://www.cnblogs.com/dianming/p/6639623.html
Copyright © 2020-2023  润新知