文件相关操作
/**
* 返回解压成功或失败.需要使用到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 ([zip UnzipOpenFile:sZipPath])
{
[zipUnzipFileTo:unZipTo overWrite:YES];
[zipUnzipCloseFile];
bUnZip=YES;
}
[ziprelease];
if (bDel) {
[selfdeleteFile:sZipPath];
}
return bUnZip;
}
/**
* 判断文件夹是否存在,不存在则创建对应文件夹.
* strDir:文件夹全路径.
**/
+(void)IfNotCreateDir:(NSString*)strDir
{
NSFileManager *fileManager = [NSFileManagerdefaultManager];
BOOL isDir = FALSE;
BOOL isDirExist = [fileManager fileExistsAtPath:strDir isDirectory:&isDir];
if(!(isDirExist && isDir))
{
BOOL bCreateDir = [fileManagercreateDirectoryAtPath:strDir withIntermediateDirectories:YESattributes:nilerror:nil];
if(!bCreateDir){
NSLog(@"Create Directory Failed.");
}
NSLog(@"%@",strDir);
}
}
/**
* 删除文件.
* strDir:文件全路径.
**/
+(void)deleteFile:(NSString*)strDir
{
NSFileManager *fileManager = [NSFileManagerdefaultManager];
if (![fileManager removeItemAtPath: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:destFile error:&error];
if (!success){
NSAssert1(0,@"Failed to copy file '%@'.", [error localizedDescription]);
return FALSE;
}
else
{
return TRUE;
}
}
/**
* 判断文件是否存在,不存在则创建.
* strFile:文件全路径.
**/
+(BOOL)CreateFileIfNotExist:(NSString *)strFile
{
//创建文件管理器
NSFileManager *fileManager = [NSFileManagerdefaultManager];
//查找文件,如果不存在,就创建一个文件
if (![fileManager fileExistsAtPath:strFile]) {
return [fileManager createFileAtPath:strFile contents:nilattributes:nil];
}
return true;
}
/**
* 读取文本文件的每行,写入nsarray.
* strFile:文件全路径.
**/
+(NSArray*)readTxtLines:(NSString *)strFile
{
NSArray *lines;/*将文件转化为一行一行的*/
NSLog(@"content:%@",[NSStringstringWithContentsOfFile:strFile encoding:NSUTF8StringEncodingerror:nil]);
lines = [[NSStringstringWithContentsOfFile:strFile encoding: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:strFile encoding:NSUTF8StringEncodingerror:nil]componentsSeparatedByString:@"\n"];
NSEnumerator *nse = [lines objectEnumerator];
// 读取如<>里的内容
NSMutableArray *arr = [[[NSMutableArrayalloc] init] autorelease];
while(tmp = [nse nextObject]) {
if (tmp !=nil || ![tmpisEqualToString:@""]) {
NSString *stringBetweenBrackets = nil;
NSScanner *scanner = [NSScannerscannerWithString:tmp];
[scannerscanUpToString:strPreFlag intoString:nil];
[scannerscanString:strPreFlag intoString:nil];
[scannerscanUpToString:strBackFlag intoString:&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:strNewFile error:nil];
}