12345678910111213141516171819202122232425262728293031323334353637383940 |
- using System;
- using System.IO;
- namespace Asset_Cleaner {
- static class CommonUtils {
- static string[] _suffix = {"B", "KB", "MB", "GB", "TB"};
- public static string BytesToString(long byteCount) {
- if (byteCount == 0)
- return $"0 {_suffix[0]}";
- var bytes = Math.Abs(byteCount);
- var place = Convert.ToInt32(Math.Floor(Math.Log(bytes, 1024)));
- double num;
- if (place == 0 || place == 1) { // display B, KB in MB
- num = Math.Round(bytes / Math.Pow(1024, 2), 4);
- return $"{Math.Sign(byteCount) * num:N} {_suffix[2]}";
- }
- num = Math.Round(bytes / Math.Pow(1024, place), 1);
- return $"{Math.Sign(byteCount) * num:F0} {_suffix[place]}";
- }
- // todo
- public static long Size(string path) {
- return TryGetSize(path, out var res) ? res : 0L;
- }
- public static bool TryGetSize(string path, out long result) {
- if (!File.Exists(path)) {
- result = default;
- return false;
- }
- var fi = new FileInfo(path);
- result = fi.Length;
- return true;
- }
- }
- }
|