sanitizeContainerName static method
去掉 Windows 非法文件名字符;空串或 GetStorage 视为无效。
Implementation
static String? sanitizeContainerName(String? raw) {
if (raw == null) return null;
var name = raw.trim();
if (name.isEmpty) return null;
name = name.replaceAll(RegExp(r'[<>:"/\\|?*]'), '_');
name = name.replaceAll(RegExp(r'[\x00-\x1F]'), '');
name = name.replaceAll(RegExp(r'[. ]+$'), '');
if (name.isEmpty) return null;
if (name.toLowerCase() == sharedContainerName.toLowerCase()) {
return null;
}
if (RegExp(
r'^(con|prn|aux|nul|com[1-9]|lpt[1-9])$',
caseSensitive: false,
).hasMatch(name)) {
name = '${name}_box';
}
if (name.length > 80) {
name = name.substring(0, 80).replaceAll(RegExp(r'[. ]+$'), '');
}
return name.isEmpty ? null : name;
}