您的位置:首页 > 移动开发 > IOS开发

iOS文件操作的十个小功能

2016-02-18 16:13 561 查看
NSFileManager是一个单列类,也是一个文件管理器。可以通过NSFileManager创建文件夹、创建文件、写文件、读文件内容等等基本功能。
下面将介绍NSFileManager文件操作的十个小功能。我们在Documents里面进行举例,首先是获取Documents的路径。这个在iOS开发之沙盒机制(SandBox)已经详细讲解过了。获取Documents路径方法如下:

-(NSString*)getDocumentsPath
{
//获取Documents路径
NSArray*paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString*path=[pathsobjectAtIndex:0];
NSLog(@"path:%@",path);
returnpath;
}

创建文件夹

-(void)createDirectory{
NSString*documentsPath=[selfgetDocumentsPath];
NSFileManager*fileManager=[NSFileManagerdefaultManager];
NSString*iOSDirectory=[documentsPathstringByAppendingPathComponent:@"iOS"];
BOOLisSuccess=[fileManagercreateDirectoryAtPath:iOSDirectorywithIntermediateDirectories:YESattributes:nilerror:nil];
if(isSuccess){
NSLog(@"success");
}else{
NSLog(@"fail");
}
}

创建文件

-(void)createFile{
NSString*documentsPath=[selfgetDocumentsPath];
NSFileManager*fileManager=[NSFileManagerdefaultManager];
NSString*iOSPath=[documentsPathstringByAppendingPathComponent:@"iOS.txt"];
BOOLisSuccess=[fileManagercreateFileAtPath:iOSPathcontents:nilattributes:nil];
if(isSuccess){
NSLog(@"success");
}else{
NSLog(@"fail");
}
}

写文件

-(void)writeFile{
NSString*documentsPath=[selfgetDocumentsPath];
NSString*iOSPath=[documentsPathstringByAppendingPathComponent:@"iOS.txt"];
NSString*content=@"我要写数据啦";
BOOLisSuccess=[contentwriteToFile:iOSPathatomically:YESencoding:NSUTF8StringEncodingerror:nil];
if(isSuccess){
NSLog(@"writesuccess");
}else{
NSLog(@"writefail");
}
}

读取文件内容

-(void)readFileContent{
NSString*documentsPath=[selfgetDocumentsPath];
NSString*iOSPath=[documentsPathstringByAppendingPathComponent:@"iOS.txt"];
NSString*content=[NSStringstringWithContentsOfFile:iOSPathencoding:NSUTF8StringEncodingerror:nil];
NSLog(@"readsuccess:%@",content);
}

判断文件是否存在

-(BOOL)isSxistAtPath:(NSString*)filePath{
NSFileManager*fileManager=[NSFileManagerdefaultManager];
BOOLisExist=[fileManagerfileExistsAtPath:filePath];
returnisExist;
}

计算文件大小

-(unsignedlonglong)fileSizeAtPath:(NSString*)filePath{
NSFileManager*fileManager=[NSFileManagerdefaultManager];
BOOLisExist=[fileManagerfileExistsAtPath:filePath];
if(isExist){
unsignedlonglongfileSize=[[fileManagerattributesOfItemAtPath:filePatherror:nil]fileSize];
returnfileSize;
}else{
NSLog(@"fileisnotexist");
return0;
}
}

计算整个文件夹中所有文件大小

-(unsignedlonglong)folderSizeAtPath:(NSString*)folderPath{
NSFileManager*fileManager=[NSFileManagerdefaultManager];
BOOLisExist=[fileManagerfileExistsAtPath:folderPath];
if(isExist){
NSEnumerator*childFileEnumerator=[[fileManagersubpathsAtPath:folderPath]objectEnumerator];
unsignedlonglongfolderSize=0;
NSString*fileName=@"";
while((fileName=[childFileEnumeratornextObject])!=nil){
NSString*fileAbsolutePath=[folderPathstringByAppendingPathComponent:fileName];
folderSize+=[selffileSizeAtPath:fileAbsolutePath];
}
returnfolderSize/(1024.0*1024.0);
}else{
NSLog(@"fileisnotexist");
return0;
}
}

删除文件

-(void)deleteFile{
NSString*documentsPath=[selfgetDocumentsPath];
NSFileManager*fileManager=[NSFileManagerdefaultManager];
NSString*iOSPath=[documentsPathstringByAppendingPathComponent:@"iOS.txt"];
BOOLisSuccess=[fileManagerremoveItemAtPath:iOSPatherror:nil];
if(isSuccess){
NSLog(@"deletesuccess");
}else{
NSLog(@"deletefail");
}
}

移动文件

-(void)moveFileName
{
NSString*documentsPath=[selfgetDocumentsPath];
NSFileManager*fileManager=[NSFileManagerdefaultManager];
NSString*filePath=[documentsPathstringByAppendingPathComponent:@"iOS.txt"];
NSString*moveToPath=[documentsPathstringByAppendingPathComponent:@"iOS.txt"];
BOOLisSuccess=[fileManagermoveItemAtPath:filePathtoPath:moveToPatherror:nil];
if(isSuccess){
NSLog(@"renamesuccess");
}else{
NSLog(@"renamefail");
}
}

重命名

-(void)renameFileName
{
//通过移动该文件对文件重命名
NSString*documentsPath=[selfgetDocumentsPath];
NSFileManager*fileManager=[NSFileManagerdefaultManager];
NSString*filePath=[documentsPathstringByAppendingPathComponent:@"iOS.txt"];
NSString*moveToPath=[documentsPathstringByAppendingPathComponent:@"rename.txt"];
BOOLisSuccess=[fileManagermoveItemAtPath:filePathtoPath:moveToPatherror:nil];
if(isSuccess){
NSLog(@"renamesuccess");
}else{
NSLog(@"renamefail");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: