diff options
Diffstat (limited to 'src/Storage.cpp')
-rw-r--r-- | src/Storage.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/Storage.cpp b/src/Storage.cpp index 6a98267..85a150c 100644 --- a/src/Storage.cpp +++ b/src/Storage.cpp @@ -259,4 +259,22 @@ namespace QuickMedia { return false; } + + std::string file_size_to_human_readable_string(size_t bytes) { + double kb = (double)bytes / 1024.0; + double mb = (double)bytes / 1024.0 / 1024.0; + double gb = (double)bytes / 1024.0 / 1024.0 / 1024.0; + char result[32]; + + if(gb >= 1.0) + snprintf(result, sizeof(result), "%.1f GiB", gb); + else if(mb >= 1.0) + snprintf(result, sizeof(result), "%.1f MiB", mb); + else if(kb >= 1.0) + snprintf(result, sizeof(result), "%.1f KiB", kb); + else + snprintf(result, sizeof(result), "%zu bytes", bytes); + + return result; + } } |