美文网首页
iOS 修改文件名称

iOS 修改文件名称

作者: KevinChein | 来源:发表于2021-04-19 11:43 被阅读0次
    - (void)renamedFiles {
      // 找到文件路径
      NSString *filePath = @"/Users/admin/Desktop/指定文件夹";
      // 工程目录
      NSString *BASE_PATH = filePath;
      NSFileManager *myFileManager = [NSFileManager defaultManager];
      NSDirectoryEnumerator *myDirectoryEnumerator = [myFileManager enumeratorAtPath:BASE_PATH];
            
      BOOL isDir = NO;
      BOOL isExist = NO;
            
      //列举目录内容,可以遍历子目录
      for (NSString *path in myDirectoryEnumerator.allObjects) {
          [self.dataLock lock];
          isExist = [myFileManager fileExistsAtPath:[NSString   stringWithFormat:@"%@/%@", BASE_PATH, path] isDirectory:&isDir];
          if (isDir) {
              NSLog(@"目录路径:%@", path);    // 目录路径
          } else {
              NSLog(@"文件路径:%@", path);    // 文件路径
              NSString *containString = @"指定字符串";
             NSString *copyPath = [path mutableCopy];
            
              if ([copyPath containsString:containString]) {
                
                  // 原来的文件目录
                  NSString* fromFileName = [filePath stringByAppendingPathComponent:path];
                // 改变之后的文件名
                  NSString* changedStr = [path stringByReplacingOccurrencesOfString:containString withString:@""];
                  // 改变之后的文件目录
                  NSString* toFileName = [filePath stringByAppendingPathComponent:changedStr];
                
                  NSError *error;
                
                  // 替换,其实也是重命名
                  BOOL isSuccess = [myFileManager moveItemAtPath:fromFileName toPath:toFileName error:&error];
                
                  if (isSuccess) {
                      NSLog(@"rename success");
                    
                      BOOL isDelSuccess = [myFileManager removeItemAtPath:path error:nil];
                      if (isDelSuccess) {
                          NSLog(@"remove success");
                      } else {
                          NSLog(@"remove fail");
                      }
                  }else{
                      NSLog(@"rename fail");
                  }
              }
          }
          [self.dataLock unlock];
      }
    }   
    
    
    - (NSLock *)dataLock{
      if (_dataLock == nil) {
          _dataLock = [[NSLock alloc] init];
      }
      return _dataLock;
    }

    相关文章

      网友评论

          本文标题:iOS 修改文件名称

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