NSFileManager(文件管理)

1>获取沙盒目录

- (NSString *)getDocumentsPath

{

//获取Documents路径

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *path = [paths objectAtIndex:0];

NSLog(@"path:%@", path);

return path;

}

2>创建文件夹

-(void)createDirectory{

NSString *documentsPath =[self getDocumentsPath];

NSFileManager *fileManager = [NSFileManager defaultManager];

NSString *iOSDirectory = [documentsPath stringByAppendingPathComponent:@"iOS"];

BOOL isSuccess = [fileManager createDirectoryAtPath:iOSDirectory withIntermediateDirectories:YES attributes:nil error:nil];

if (isSuccess) {

NSLog(@"success");

} else {

NSLog(@"fail");

}

}

3>创建文件

-(void)createFile{

NSString *documentsPath =[self getDocumentsPath];

NSFileManager *fileManager = [NSFileManager defaultManager];

NSString *iOSPath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

BOOL isSuccess = [fileManager createFileAtPath:iOSPath contents:nil attributes:nil];

if (isSuccess) {

NSLog(@"success");

} else {

NSLog(@"fail");

}

}

4>写文件

-(void)writeFile{

NSString *documentsPath =[self getDocumentsPath];

NSString *iOSPath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

NSString *content = @"我要写数据啦";

BOOL isSuccess = [content writeToFile:iOSPath atomically:YES encoding:NSUTF8StringEncoding error:nil];

if (isSuccess) {

NSLog(@"write success");

} else {

NSLog(@"write fail");

}

}

5>读取文件内容

-(void)readFileContent{

NSString *documentsPath =[self getDocumentsPath];

NSString *iOSPath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

NSString *content = [NSString stringWithContentsOfFile:iOSPath encoding:NSUTF8StringEncoding error:nil];

NSLog(@"read success: %@",content);

}

6判断文件是否存在

- (BOOL)isSxistAtPath:(NSString *)filePath{

NSFileManager *fileManager = [NSFileManager defaultManager];

BOOL isExist = [fileManager fileExistsAtPath:filePath];

return isExist;

}

7>计算文件大小

- (unsigned long long)fileSizeAtPath:(NSString *)filePath{

NSFileManager *fileManager = [NSFileManager defaultManager];

BOOL isExist = [fileManager fileExistsAtPath:filePath];

if (isExist){

unsigned long long fileSize = [[fileManager attributesOfItemAtPath:filePath error:nil] fileSize];

return fileSize;

} else {

NSLog(@"file is not exist");

return 0;

}

}

8>计算整个文件中所有文件大小

- (unsigned long long)folderSizeAtPath:(NSString*)folderPath{

NSFileManager *fileManager = [NSFileManager defaultManager];

BOOL isExist = [fileManager fileExistsAtPath:folderPath];

if (isExist){

NSEnumerator *childFileEnumerator = [[fileManager subpathsAtPath:folderPath] objectEnumerator];

unsigned long long folderSize = 0;

NSString *fileName = @"";

while ((fileName = [childFileEnumerator nextObject]) != nil){

NSString* fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];

folderSize += [self fileSizeAtPath:fileAbsolutePath];

}

return folderSize / (1024.0 * 1024.0);

} else {

NSLog(@"file is not exist");

return 0;

}

}

9>删除文件

-(void)deleteFile{

NSString *documentsPath =[self getDocumentsPath];

NSFileManager *fileManager = [NSFileManager defaultManager];

NSString *iOSPath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

BOOL isSuccess = [fileManager removeItemAtPath:iOSPath error:nil];

if (isSuccess) {

NSLog(@"delete success");

}else{

NSLog(@"delete fail");

}

}

10>移动文件

- (void)moveFileName

{

NSString *documentsPath =[self getDocumentsPath];

NSFileManager *fileManager = [NSFileManager defaultManager];

NSString *filePath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

NSString *moveToPath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

BOOL isSuccess = [fileManager moveItemAtPath:filePath toPath:moveToPath error:nil];

if (isSuccess) {

NSLog(@"rename success");

}else{

NSLog(@"rename fail");

}

}

11>重命名

- (void)renameFileName

{

//通过移动该文件对文件重命名

NSString *documentsPath =[self getDocumentsPath];

NSFileManager *fileManager = [NSFileManager defaultManager];

NSString *filePath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"];

NSString *moveToPath = [documentsPath stringByAppendingPathComponent:@"rename.txt"];

BOOL isSuccess = [fileManager moveItemAtPath:filePath toPath:moveToPath error:nil];

if (isSuccess) {

NSLog(@"rename success");

}else{

NSLog(@"rename fail");

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 27、ViewController的didReceiveMemoryWarning是在什么时候调用的?默认的操作是...
    烟雨平生花飞舞阅读 617评论 0 1
  • NSFileManager:用于执行一般的文件系统操作,主要功能包括:从一个文件中读取数据,向一个文件中写入数据,...
    金鱼________阅读 2,326评论 0 3
  • 一、iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间,叫做沙盒。它一...
    1d5cb7cff98d阅读 1,787评论 0 0
  • //获得应用程序沙盒的Documents文件夹路径** NSArray *arrDocumentPaths = N...
    博行天下阅读 488评论 2 1
  • 一、iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间,叫做沙盒。它一...
    绚雨蓝了个枫阅读 4,135评论 0 2