legalizeFilename function

String legalizeFilename(
  1. String filename, {
  2. String? os,
  3. String replacement = '_',
  4. String placeholder = 'untitled',
})

Sanitizes the filename for a given system.

os is used to determine the system. Its values can be any of "android" "fuchsia" "ios" "linux" "macos" "windows". If the system is unspecified or recognized, legalizeFilenameUniversal will be used. replacement is used to replace illegal characters. If the filename is empty after sanitization, it will be replaced with placeholder. It is recommended to not use an empty replacement and an empty placeholder as it may result in an empty filename.

Implementation

String legalizeFilename(String filename, {String? os, String replacement = '_', String placeholder = 'untitled'}) {
  var result = filename;

  switch (os) {
    case 'windows':
      result = legalizeWindowsFilename(result, replacement: replacement, placeholder: placeholder);
      break;
    case 'macos':
    case 'ios':
      result = legalizeHFSFilename(result, replacement: replacement, placeholder: placeholder);
      break;

    case 'android':
      result = legalizeFATFilename(result, replacement: replacement, placeholder: placeholder);
    case 'linux':
      result = legalizePosixFilename(
        result,
        replacement: replacement,
        placeholder: placeholder,
      );
      break;
    case 'fuchsia':
    default:
      result = legalizeFilenameUniversal(result, replacement: replacement, placeholder: placeholder);
  }

  return result;
}