humanToBytes static method
Converts a human-readable size string to bytes
Supports units: B, KB, MB, GB, TB, PB (case insensitive)
sizeString The size string to parse (e.g., "1.5 MB")
Returns the size in bytes or null if parsing fails
Example:
final result = QTypeConversion.humanToBytes('1.5 MB'); // 1572864
Implementation
static int? humanToBytes(String sizeString) {
if (sizeString.isEmpty) return null;
final units = {
'b': 1,
'kb': 1024,
'mb': 1024 * 1024,
'gb': 1024 * 1024 * 1024,
'tb': 1024 * 1024 * 1024 * 1024,
'pb': 1024 * 1024 * 1024 * 1024 * 1024,
};
try {
final trimmed = sizeString.trim().toLowerCase();
final parts = trimmed.split(RegExp(r'\s+'));
if (parts.length == 1) {
// Just a number, assume bytes
return int.parse(parts[0]);
} else if (parts.length == 2) {
final value = double.parse(parts[0]);
final unit = parts[1].toLowerCase();
final multiplier = units[unit];
if (multiplier != null) {
return (value * multiplier).round();
}
}
} catch (_) {}
return null;
}