NSFileManager

此篇是关于NSFileManager如何使用.包括创建文件,目录.删除文件等操作

获取Documents路径

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

在Documents里创建目录

<pre>NSString *filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]; NSLog(@"%@",filePath); NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *fooDirectory = [filePath stringByAppendingPathComponent:@"foo"]; [fileManager createDirectoryAtPath:fooDirectory withIntermediateDirectories:YES attributes:nil error:nil];</pre>

在foo目录中创建文件,并写入内容

<pre>`
NSString *filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSLog(@"%@",filePath);
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *fooDirectory = [filePath stringByAppendingPathComponent:@"fuck"];
[fileManager createDirectoryAtPath:fooDirectory withIntermediateDirectories:YES attributes:nil error:nil];
NSString *filePathOftest = [fooDirectory stringByAppendingPathComponent:@"haha001.txt"];

NSString *str = @"write something";
[fileManager createFileAtPath:filePathOftest contents:[str dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];

`</pre>

获取文件夹里面所有文件名

<pre>NSString *filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]; NSLog(@"%@",filePath); NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *fooDirectory = [filePath stringByAppendingPathComponent:@"fuck"]; NSArray *files = [fileManage subpathsAtPath: fooDirectory ];</pre>

判断文件是否存在

<pre>`

  • (BOOL)isSxistAtPath:(NSString *)filePath{
    NSFileManager *fileManager = [NSFileManager defaultManager];
    BOOL isExist = [fileManager fileExistsAtPath:filePath];
    return isExist;
    }
    `</pre>

计算文件大小

<pre>- (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; } }</pre>

计算文件夹大小

<pre>`

  • (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;
    }
    }
    `</pre>

删除文件

<pre>-(void)deleteFile{ NSString *documentsPath =[self getDocumentsPath]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *iOSPath = [documentsPath stringByAppendingPathComponent:@"foo.txt"]; BOOL isSuccess = [fileManager removeItemAtPath:iOSPath error:nil]; if (isSuccess) { NSLog(@"delete success"); }else{ NSLog(@"delete fail"); } }</pre>

移动文件

<pre>- (void)moveFileName { NSString *documentsPath =[self getDocumentsPath]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *filePath = [documentsPath stringByAppendingPathComponent:@"foo.txt"]; NSString *moveToPath = [documentsPath stringByAppendingPathComponent:@"foof.txt"]; BOOL isSuccess = [fileManager moveItemAtPath:filePath toPath:moveToPath error:nil]; if (isSuccess) { NSLog(@"rename success"); }else{ NSLog(@"rename fail"); } }</pre>

重命名

<pre>- (void)renameFileName { //通过移动该文件对文件重命名 NSString *documentsPath =[self getDocumentsPath]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *filePath = [documentsPath stringByAppendingPathComponent:@"foo.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"); } }</pre>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容