safeFilename function
Implementation
String safeFilename(
String filename, {
String separator = '-',
bool withSpaces = false,
bool lowercase = false,
bool onlyAlphanumeric = false,
}) {
final List<String> reservedCharacters = [
'?',
':',
'"',
'*',
'|',
'/',
'\\',
'<',
'>',
'+',
'[',
']',
];
final RegExp onlyAlphanumericRegex = RegExp(r'''[^a-zA-Z0-9\s.]''');
String returnString = filename;
if (onlyAlphanumeric) {
returnString = returnString.replaceAll(onlyAlphanumericRegex, '');
} else {
for (var c in reservedCharacters) {
returnString = returnString.replaceAll(c, separator);
}
}
if (!withSpaces) returnString = returnString.replaceAll(' ', separator);
return lowercase ? returnString.toLowerCase() : returnString;
}