iOS 文件以及文件夹相关操作

来源:互联网 发布:北京世纪中彩网络诈骗 编辑:程序博客网 时间:2024/05/16 20:56

 文件相关操作

/**

 * 返回解压成功或失败.需要使用到ZipArchive

 * srcfile:待解压文件全路径 destfile:解压文件全路径.

**/


+(BOOL)UnZipFile:(NSString*)srcFile ToFile:(NSString *)destFile withdeleteflag:(BOOL) bDel

{

   BOOL bUnZip =false;

    ZipArchive *zip = [[ZipArchivealloc]init];

    

   NSString *sZipPath = srcFile;

    

   NSString *unZipTo = destFile;

    

   if ([zipUnzipOpenFile:sZipPath])

        

    {

        

        [zipUnzipFileTo:unZipTooverWrite:YES];

        

        [zipUnzipCloseFile];

        bUnZip=YES;

        

    }

    [ziprelease];

    

   if (bDel) {

        [selfdeleteFile:sZipPath];

    }

    

    

   return bUnZip;

}


/**

 * 判断文件夹是否存在,不存在则创建对应文件夹.

 * strDir:文件夹全路径.

**/



+(void)IfNotCreateDir:(NSString*)strDir

{

    

    NSFileManager *fileManager = [NSFileManagerdefaultManager];

   BOOL isDir =FALSE;

   BOOL isDirExist = [fileManagerfileExistsAtPath:strDir  isDirectory:&isDir];

    

   if(!(isDirExist && isDir))

    {

        BOOL bCreateDir = [fileManagercreateDirectoryAtPath:strDirwithIntermediateDirectories:YESattributes:nilerror:nil];

       if(!bCreateDir){

            NSLog(@"Create  Directory Failed.");

        }

       NSLog(@"%@",strDir);

    }

    

}


/**

 *  删除文件.

 * strDir:文件全路径.

**/

+(void)deleteFile:(NSString*)strDir

{

    NSFileManager *fileManager = [NSFileManagerdefaultManager];

   if (![fileManagerremoveItemAtPath:strDir error:nil]) {

        NSLog(@"remove file error.");

    }

   else

    {

        NSLog(@"remove file success.");

    }

    

}


/**

 *  复制文件.

 * srcFile:原文件全路径.destFile:目标文件全路径

**/

+(BOOL)CopyFile:(NSString *)srcFile ToFile:(NSString *)destFile

{

   NSError *error=nil;

   BOOL success = [[NSFileManagerdefaultManager]copyItemAtPath:srcFiletoPath:destFileerror:&error];

    

   if (!success){

        NSAssert1(0,@"Failed to copy file '%@'.", [errorlocalizedDescription]);

        return FALSE;

    }

   else

    {

       returnTRUE;

    }

}


/**

 * 判断文件是否存在,不存在则创建.

 * strFile:文件全路径.

**/


+(BOOL)CreateFileIfNotExist:(NSString *)strFile

{

    //创建文件管理器

    

    NSFileManager *fileManager = [NSFileManagerdefaultManager];


    //查找文件,如果不存在,就创建一个文件

    

   if (![fileManagerfileExistsAtPath:strFile]) {

        

       return  [fileManagercreateFileAtPath:strFile contents:nilattributes:nil];

        

    }

    return true;

}


/**

 * 读取文本文件的每行,写入nsarray.

 * strFile:文件全路径.

**/


+(NSArray*)readTxtLines:(NSString *)strFile

{

    NSArray *lines;/*将文件转化为一行一行的*/

    NSLog(@"content:%@",[NSStringstringWithContentsOfFile:strFileencoding:NSUTF8StringEncodingerror:nil]);

    lines = [[NSStringstringWithContentsOfFile:strFileencoding:NSUTF8StringEncodingerror:nil]componentsSeparatedByString:@"\n"];

   return lines;

}


/**

 * 读取文本文件的每行中制定字符类间的数据.

 * strFile:文件全路径.strPreFlag:前分割字符,如“<";strBackFlag:前分割字符,如“>";

**/


+(NSArray*)readTxtLines:(NSString *)strFile withPreFlag:(NSString *)strPreFlag AndBackFlag:(NSString *)strBackFlag

{

   NSString *tmp;

    NSArray *lines;/*将文件转化为一行一行的*/

    lines = [[NSStringstringWithContentsOfFile:strFileencoding:NSUTF8StringEncodingerror:nil]componentsSeparatedByString:@"\n"];


   NSEnumerator *nse = [linesobjectEnumerator];


    // 读取如<>里的内容

    NSMutableArray *arr = [[[NSMutableArrayalloc]init] autorelease];

   while(tmp = [nsenextObject]) {

       if (tmp !=nil || ![tmpisEqualToString:@""]) {

           NSString *stringBetweenBrackets =nil;

           NSScanner *scanner = [NSScannerscannerWithString:tmp];

            [scannerscanUpToString:strPreFlagintoString:nil];

            [scannerscanString:strPreFlagintoString:nil];

            [scannerscanUpToString:strBackFlagintoString:&stringBetweenBrackets];

           if (stringBetweenBrackets !=nil) {

                [arraddObject:stringBetweenBrackets];

            }

        


        }

    }

   return arr;

}


/**

 * 判断文件是否可读.

 * strFile:文件全路径;

**/

+(BOOL)IsFileCanRead:(NSString *)strFile

{

    return [[NSFileManagerdefaultManager]isReadableFileAtPath:strFile];

}


/**

 * 判断文件是否可写.

 * strFile:文件全路径;

**/


+(BOOL)IsFileCanWrite:(NSString *)strFile

{

    return [[NSFileManagerdefaultManager]isWritableFileAtPath:strFile];

}


/**

 * 判断文件是否相同.

 * 

**/


+(BOOL)IsFile:(NSString *)strSrcFILE equaltofile:(NSString *)strDestFile

{

    return [[NSFileManagerdefaultManager]contentsEqualAtPath:strSrcFILEandPath:strDestFile];

}


/**

 * 修改文件名.

 * 

**/


+(BOOL)reNameFile:(NSString *)strOldFile toFile:(NSString *)strNewFile

{

    //将文件 newfile.txt重命名为 newfile2.txt

    return [[NSFileManagerdefaultManager]moveItemAtPath:strOldFiletoPath:strNewFileerror:nil];

}