createLanguageCode static method

Future<void> createLanguageCode({
  1. required String templateFile,
  2. required String targetFile,
})

Implementation

static Future<void> createLanguageCode({
  required String templateFile, //模板目录
  required String targetFile, //目标文件
}) async {

  bool isTemplateFileExist = await FFile.isExistFile(templateFile);
  if (isTemplateFileExist == false) {
    print("模板文件不存在 ${templateFile}");
    return;
  }

  bool isTargetFileExist = await FFile.isExistFile(targetFile);
  if (isTargetFileExist == false) {

    File? createTargetFile = await FFile.createFile(targetFile);
    if (createTargetFile == null) {
      print("创建目标文件失败 ${targetFile}");
      return;
    }
  }

  String templateCode = await FFile.readAsString(templateFile);
  if (FFEmpty.stringIsEmpty(templateCode)) {
    print("模板文件内容不应该为空 ${templateFile}");
    return;
  }

  //取模板文件转化成Map
  Map<String,dynamic>? templateMap;
  try {
    templateMap = json.decode(templateCode);
  } catch (e) {
    print("模板文件内容必须是Map,且不能为空 ${templateFile}");
    return;
  }
  if (FFEmpty.mapIsEmpty(templateMap)) {
    print("模板文件内容必须是Map,且不能为空 ${templateFile}");
    return;
  }

  //取目标文件转化成Map
  String targetCode = await FFile.readAsString(targetFile);

  Map<String,dynamic>? targetMap;
  if (FFEmpty.stringIsEmpty(targetCode)) {
    targetMap = {};
  }  else {
    try {
      targetMap = json.decode(targetCode);
    } catch (e) {
      print("目标文件内容必须是Map ${templateFile}");
      return;
    }
  }

  valueIsMap(templateMap!, targetMap!);

  String content = json.encode(targetMap);
  bool success = await FFile.writeContentByPath(filePath: targetFile, content: content,mode: FileMode.write);
  if (success == true) {
    print("目标文件追加方法成功 ${targetFile}");
  }  else {
    print("目标文件追加方法失败,请去目标文件Commnd + Z, ${targetFile}");
  }
}