Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2010, 16:01   #1
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию размер файла

есть размер файла полученный таким методом:
Код:
FileInfo fi = new FileInfo("1.avi");
int file_size = fi.Length;
выгладит данная переменная примерно так: 127285
может быть у кого-нибудь есть готовый метод приведения этого числа в нормальный вид?
т.е.
127285 байт = 124 кб
или
12728500 байт = 12,13 мб

я на скорую руку написал, но она корявая (не под любой размер файла) и не всегда работает
Life if about choices
Make the right choice
TaTT DoGG вне форума Ответить с цитированием
Старый 11.03.2010, 16:12   #2
BOZKURT
Пользователь
 
Регистрация: 14.10.2009
Сообщений: 70
По умолчанию

Вот (не мое):

Код:
        public string BytesToString(double Bytes)
        {
            double tmp = Bytes / 1024;
            if (tmp < 1)
            {
                return Bytes.ToString("0.##");
            }
            Double tmp1 = tmp / 1024;
            if (tmp1 < 1)
            {
                return tmp.ToString("0.##") + " Kb";
            }
            Double tmp2 = tmp1 / 1024;
            if (tmp2 < 1)
            {
                return tmp1.ToString("0.###") + " Mb";
            }
            Double tmp3 = tmp2 / 1024;
            if (tmp2 < 1)
            {
                return tmp2.ToString("0.###") + " Gb";
            }
            return Bytes.ToString();
        }
BOZKURT вне форума Ответить с цитированием
Старый 11.03.2010, 16:24   #3
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию

спасибо пашет
тока в последнем if нужно tmp2 на tmp3 поменять

нашел абсолютно случайно. метод был написан на другом языке. вот переделал. мот кому понадобится:
Код:
public string NormalSize(int size)
{
double i = Math.Floor(Math.Log(size, 1024));
string[] filesizename = new string[] { "Байт", "Кб", "Мб", "Гб", "Тб" };
return Math.Round(size / Math.Pow(1024, i), 2) + filesizename[Convert.ToInt32(i)];
}
Life if about choices
Make the right choice

Последний раз редактировалось Stilet; 18.03.2010 в 16:10.
TaTT DoGG вне форума Ответить с цитированием
Старый 16.05.2010, 23:46   #4
BOZKURT
Пользователь
 
Регистрация: 14.10.2009
Сообщений: 70
По умолчанию

Цитата:
Сообщение от TaTT DoGG Посмотреть сообщение
спасибо пашет
тока в последнем if нужно tmp2 на tmp3 поменять

нашел абсолютно случайно. метод был написан на другом языке. вот переделал. мот кому понадобится:
Код:
public string NormalSize(int size)
{
double i = Math.Floor(Math.Log(size, 1024));
string[] filesizename = new string[] { "Байт", "Кб", "Мб", "Гб", "Тб" };
return Math.Round(size / Math.Pow(1024, i), 2) + filesizename[Convert.ToInt32(i)];
}
Отличный пример. Спасибо!
BOZKURT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Размер файла flug Общие вопросы Delphi 2 29.10.2009 13:43
Размер файла Tesmont Помощь студентам 1 15.05.2009 17:31
Размер файла Naposaram PHP 2 08.02.2009 11:54
Размер файла eoln Общие вопросы Delphi 2 13.07.2008 01:44
размер файла мандарин Общие вопросы Delphi 4 06.05.2007 17:22