ios 常用的处理沙盒文件方法

@implementation FileOperate


// 获取沙盒主目录路径
+ (NSString *)getFileRootPathAtObjects{
    NSString *homeDir =NSHomeDirectory();
    if (homeDir && ![homeDirisEqualToString:@""]) {
        return homeDir;
    }
    returnnil;
}


// 获取Documents目录路径
+ (NSString *)getFileDomcumentFolderPathAtObject{
    NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [pathsobjectAtIndex:0];
    if (documentsDirectory) {
        return documentsDirectory;
    }
    returnnil;
}

// 获取Documents目录路径文件夹
+ (NSArray *)getFileDomcumentFolderAtObjects{
    NSFileManager *fileMgr = [NSFileManagerdefaultManager];
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [pathsobjectAtIndex:0];
NSError *error =nil;
NSArray *fileList = [fileMgrcontentsOfDirectoryAtPath:documentsDirectoryerror:&error] ;
    BOOL isDir =NO;
    NSMutableArray *dirArray = [[NSMutableArrayalloc] init];
    for (NSString *filein fileList) {
        NSString *path = [documentsDirectorystringByAppendingPathComponent:file];
        isDir  =[fileMgrfileExistsAtPath:path isDirectory:(&isDir)]; // 判断是文件还是文件夹,文件夹返回yes
        if (isDir) {
            [dirArrayaddObject:file];
        }
    }
    return [dirArrayautorelease];
}

// 获取Documents目录路径下所有文件
+ (NSString *) getFileDomcumentAtObjects{
    NSString *documentsDirectory = [NSHomeDirectory()stringByAppendingPathComponent:@"Documents"];
    if (documentsDirectory && ![documentsDirectoryisEqualToString:@""]) {
        return documentsDirectory;
    }
    returnnil;
}

//获取Documents目录下所有文件
+ (NSArray *) getFileDomcumentBooksAtObjects{
    NSFileManager *fileMgr = [NSFileManagerdefaultManager];
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [pathsobjectAtIndex:0];
NSError *error =nil;
NSArray *fileList = [fileMgrcontentsOfDirectoryAtPath:documentsDirectoryerror:&error];
    if (fileList && [fileListcount] >0) {
        return fileList;
    }
    returnnil;
}


// 获取Documents目录路径下指定文件
+ (NSArray *) getFileDomcumentInNameAtObjects:(NSString *)fileName{
    NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
    NSString *documentsDirectory = [pathsobjectAtIndex:0];
    NSArray *tempArray = [[NSFileManagerdefaultManager] contentsOfDirectoryAtPath:[documentsDirectorystringByAppendingPathComponent:fileName]error:NULL];
    if (tempArray) {
        return tempArray;
    }
    returnnil;
}


// 获取Caches目录路径
+ (NSArray *)getFileCachesPathAtObjects
{
    
    NSArray *paths =NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask, YES);
    if (paths) {
        return paths;
    }
    returnnil;
}

//根据文件名称删除Caches路径下的文件
+ (void)deleteFileAtCaches:(NSString *)fileName
{
    NSArray *paths =NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);
    NSString *cachesDirectory = [pathsobjectAtIndex:0];
    NSString *cachesFolderPath = [cachesDirectorystringByAppendingPathComponent:fileName];
    NSError *error;
    [[NSFileManagerdefaultManager] removeItemAtPath:cachesFolderPatherror:&error];
}


// 获取tmp目录路径
+ (NSString *)getFileTmpPathAtObjects{
    NSString *tmpDir = NSTemporaryDirectory();
    if (tmpDir && ![tmpDirisEqualToString:@""]) {
        return tmpDir;
    }
    returnnil;
}


//获取项目DataSource文件指定文件路径
+ (NSString *)getFileResoucePathAtObjects:(NSString *)myFileName{
    NSString *paths = [[NSBundlemainBundle] resourcePath];
    NSString *bundlePath = [pathsstringByAppendingPathComponent:myFileName];
    if (bundlePath && ![bundlePathisEqualToString:@""]) {
        return bundlePath;
    }
    returnnil;
}


//在Document路径下创建文件夹
+ (BOOL)createFolderInDocumentObjects:(NSString *)fileName{
    BOOL isSuccess;
    if (fileName && ![fileNameisEqualToString:@""]) {
        NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
        NSString *doc = [pathsobjectAtIndex:0];
        
        NSString *userDirectory = [docstringByAppendingPathComponent:fileName];

        NSFileManager *fileManager = [NSFileManagerdefaultManager];
        
        if(![fileManagerfileExistsAtPath:userDirectory]){
            isSuccess = [fileManagercreateDirectoryAtPath:userDirectorywithIntermediateDirectories:NOattributes:NULLerror:NULL];
            return isSuccess;
        }
    }
    returnNO;
}

//根据文件名称删除Document路径下的文件
+ (void)deleteFileAtDocument:(NSString *)fileName
{
    NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
    NSString *documentsDirectory = [pathsobjectAtIndex:0];
    NSString *documentLibraryFolderPath = [documentsDirectorystringByAppendingPathComponent:fileName];
    NSError *error;
    [[NSFileManagerdefaultManager] removeItemAtPath:documentLibraryFolderPatherror:&error];
}

//删除指定文件
+ (BOOL) deleteFile:(NSString *)path
{
    if (path ==nil) {
        returnNO;
    }
    
    NSError *error =nil;
    NSFileManager *fileManager = [[NSFileManageralloc] init];
    if (fileManager !=nil) {
        BOOL result = [fileManagerremoveItemAtPath:path error:&error];
        [fileManager release];
        if (result !=YES) {
            returnNO;
        }
        returnYES;
    }
    returnNO;
}

//获取Library根路径
+ (NSString *)getLibraryPathAtObjects{
    NSArray *paths =NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask, YES);
    NSString *libPath = [pathsobjectAtIndex:0];
    if (libPath && ![libPathisEqualToString:@""]) {
        return libPath;
    }
    returnnil;
}

///判断文件是否存在
+ (BOOL) isHashFilePath:(NSString *)filePath{
    BOOL isExist =NO;
    NSFileManager *fileManager = [NSFileManagerdefaultManager];
    isExist = [fileManagerfileExistsAtPath:filePath];
    if (isExist) {
        returnYES;
    }
    returnNO;
}


//在指定路径下创建文件夹
+ (BOOL)createFolderInLibraryObjects:(NSString *)path{
    BOOL isSuccess;
    if (path && ![pathisEqualToString:@""]) {
        NSFileManager *fileManager = [NSFileManagerdefaultManager];
        if([fileManagerfileExistsAtPath:path]){
            returnNO;
        }else{
            isSuccess = [fileManagercreateDirectoryAtPath:path withIntermediateDirectories:NOattributes:NULLerror:NULL];
            return isSuccess;
        }
    }
    returnNO;
}


//在Library路径下copy指定文件
+ (BOOL)copyFileAtAssignPathInLibrary:(NSString *)fileName oldPath:(NSString *)oldPath  newPath:(NSString *)newPath
{
    NSError *error =nil;
    BOOL isSuccess = [[NSFileManagerdefaultManager] copyItemAtPath:oldPathtoPath:newPath error:&error];
    return isSuccess;
}


//根据文件名称删除Library路径下的文件
+ (void)deleteFileAtLibrary:(NSString *)fileName
{
    NSArray *paths =NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSLocalDomainMask,YES);
    NSString *documentsDirectory = [pathsobjectAtIndex:0];
    NSString *documentLibraryFolderPath = [documentsDirectorystringByAppendingPathComponent:fileName];
    NSError *error;
    [[NSFileManagerdefaultManager] removeItemAtPath:documentLibraryFolderPatherror:&error];
}
///判断文件夹是否存在
+(BOOL)isTheDirIsExist:(NSString *)path
{
    BOOL isdic =YES;
     NSFileManager *fileManager = [NSFileManagerdefaultManager];
    BOOL isDirExist = [fileManagerfileExistsAtPath: path isDirectory: &isdic];
    return isDirExist;
}
//获取指定目录下所有文件
+(NSArray *)getTheDirAllFile:(NSString *)path
{
    NSError *error =nil;
    NSFileManager *fileMgr = [NSFileManagerdefaultManager];
    NSArray *fileList = [fileMgrcontentsOfDirectoryAtPath:path error:&error] ;
    BOOL isDir =NO;
    NSMutableArray *dirArray = [[NSMutableArrayalloc] init];
    for (NSString *filein fileList) {
        isDir  =[fileMgrfileExistsAtPath:file isDirectory:(&isDir)]; // 判断是文件还是文件夹,文件夹返回yes
        if (!isDir) {
            [dirArrayaddObject:file];
        }
    }
    return [dirArrayautorelease];
}

@end


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值