sanitize static method

String sanitize(
  1. String name
)

Makes name safe on every file system: no separators or reserved characters, no Windows device names, no leading dots, and at most 180 characters.

Implementation

static String sanitize(String name) {
  String result = name.replaceAll(RegExp(r'[<>:"/\\|?*\x00-\x1F]'), "_").trim();
  result = result.replaceAll(RegExp(r"^[.\s]+|[.\s]+$"), "");
  if (result.isEmpty) result = "download";
  final String stem = result.split(".").first.toUpperCase();
  if (_reserved.contains(stem)) result = "_$result";
  if (result.length > 180) {
    final String extension = extensionOf(result);
    result = "${result.substring(0, 180 - extension.length - 1)}.$extension";
  }
  return result;
}