У меня есть список с 4 столбцами - имя, расширение, размер и местоположение. У меня есть метод, который принимает размер файла в байтах и при необходимости преобразует в КБ, МБ, ГБ и т. Д. Примером вывода будет файл размером 1024 байта, который печатается как «1 КБ». Это значение затем помещается в просмотр списка.
Что мне нужно сделать, так это разумно отсортировать столбец размера. В настоящее время сортировка является простым сравнением, поэтому 1025 КБ выше, чем 1024 МБ. Как я могу сделать так, чтобы он «знал размер»?
Мой текущий код сортировки взят из этой статьи: http://support.microsoft.com/kb/319401
А вот мой код, который генерирует текст размера файла:
public static string getDynamicFileSize(string fileName)
{
FileInfo fi = new FileInfo(fileName);
long sizeInBytes = fi.Length;
if (sizeInBytes >= 1073741824)
{
double sizeInGB = sizeInBytes / Math.Pow(1024, 3);
return Math.Round(sizeInGB, 2) + " GB";
}
if (sizeInBytes >= 1048576)
{
double sizeInMB = sizeInBytes / Math.Pow(1024, 2);
return Math.Round(sizeInMB, 2) + " MB";
}
if (sizeInBytes >= 1024)
{
double sizeInKB = sizeInBytes / Math.Pow(1024,1);
return Math.Round(sizeInKB, 2) + " KB";
}
//No conversion needed
return sizeInBytes + " bytes";
}
Спасибо.