formatName method

String formatName({
  1. required String name,
  2. required bool isDir,
})

Implementation

String formatName({required String name, required bool isDir}) {
  String aName = name;
  if (!isDir && aName.contains(".")) {
    aName = aName.replaceAll(RegExp(r"\.[^\.]+$"), "");
  }
  // 扩展的特殊字符:空格、下划线、点、$、@、#、!、% 等
  List<String> parts =
      aName.split(RegExp(r"[\s_\.\$\@\#\!\%\^\&\*\(\)\-\+=]+"));
  List<String> capitalizedParts = [];
  for (int i = 0; i < parts.length; i++) {
    String tmpPart = parts[i];
    if (tmpPart.isEmpty) {
      continue;
    }
    if (capitalizedParts.isNotEmpty) {
      // 大写
      tmpPart = tmpPart[0].toUpperCase() + tmpPart.substring(1);
    } else {
      tmpPart = tmpPart[0].toLowerCase() + tmpPart.substring(1);
    }
    capitalizedParts.add(tmpPart);
  }
  return capitalizedParts.join("");
}