aves/lib/utils/file_utils.dart
2019-07-28 16:22:59 +09:00

38 lines
1.5 KiB
Dart

String formatFilesize(int size, {int round = 2}) {
int divider = 1024;
if (size < divider) return '$size B';
if (size < divider * divider && size % divider == 0) {
return '${(size / divider).toStringAsFixed(0)} KB';
}
if (size < divider * divider) {
return '${(size / divider).toStringAsFixed(round)} KB';
}
if (size < divider * divider * divider && size % divider == 0) {
return '${(size / (divider * divider)).toStringAsFixed(0)} MB';
}
if (size < divider * divider * divider) {
return '${(size / divider / divider).toStringAsFixed(round)} MB';
}
if (size < divider * divider * divider * divider && size % divider == 0) {
return '${(size / (divider * divider * divider)).toStringAsFixed(0)} GB';
}
if (size < divider * divider * divider * divider) {
return '${(size / divider / divider / divider).toStringAsFixed(round)} GB';
}
if (size < divider * divider * divider * divider * divider && size % divider == 0) {
return '${(size / divider / divider / divider / divider).toStringAsFixed(0)} TB';
}
if (size < divider * divider * divider * divider * divider) {
return '${(size / divider / divider / divider / divider).toStringAsFixed(round)} TB';
}
if (size < divider * divider * divider * divider * divider * divider && size % divider == 0) {
return '${(size / divider / divider / divider / divider / divider).toStringAsFixed(0)} PB';
}
return '${(size / divider / divider / divider / divider / divider).toStringAsFixed(round)} PB';
}