withExtension static method
Implementation
static String withExtension(
String? filename,
String extension, {
String fallback = defaultFallback,
int maxLength = defaultMaxLength,
}) {
final safeExtension = _sanitizeExtension(extension);
if (safeExtension.isEmpty) {
return sanitize(filename, fallback: fallback, maxLength: maxLength);
}
final suffix = '.$safeExtension';
final raw = filename?.trim();
final hasSuffix =
raw != null && raw.toLowerCase().endsWith(suffix.toLowerCase());
final stemInput = hasSuffix
? raw.substring(0, raw.length - suffix.length)
: raw;
final safeFallback = _fallbackStem(fallback, suffix);
final stem = _sanitizeStem(stemInput, safeFallback);
final limit = maxLength < suffix.length + 1 ? suffix.length + 1 : maxLength;
final safeStem = _limitLength(
stem,
limit - suffix.length,
fallback: safeFallback,
);
return '$safeStem$suffix';
}