美文网首页
NSFileManager

NSFileManager

作者: 有一种再见叫青春 | 来源:发表于2016-11-04 16:32 被阅读20次

    此篇是关于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>

    相关文章

      网友评论

          本文标题:NSFileManager

          本文链接:https://www.haomeiwen.com/subject/rrcwuttx.html