В этой инструкции будет описано как получить размер выбранного вами файла через класс «OpenFileDialog», реализующего открытие диалогового окна для выбора файла. Создайте проект Windows Form в Microsoft Visual Studio. Добавьте компонент «Button» на форму и сделайте двойной клик левой клавишей мыши по нему. Вы перейдете в автоматически созданный метод «button1_Click». Добавьте в него следующий листинг, в котором прописан вызов открытия диалогового окна для выбора файла с помощью класса «OpenFileDialog».
var ofd = new OpenFileDialog(); if (ofd.ShowDialog() == DialogResult.OK) { MessageBox.Show(GetFileSize(new System.IO.FileInfo(ofd.FileName))); }Так же добавьте ниже приведенный метод «конвертер» для перевода размера файла в нормальный вид:
public string GetFileSize(System.IO.FileInfo file) { try { double sizeinbytes = file.Length; double sizeinkbytes = Math.Round((sizeinbytes / 1024)); double sizeinmbytes = Math.Round((sizeinkbytes / 1024)); double sizeingbytes = Math.Round((sizeinmbytes / 1024)); if (sizeingbytes > 1) return string.Format("{0} GB", sizeingbytes); //размер в гигабайтах else if (sizeinmbytes > 1) return string.Format("{0} MB", sizeinmbytes); //возвращает размер в мегабайтах, если размер файла менее одного гигабайта else if (sizeinkbytes > 1) return string.Format("{0} KB", sizeinkbytes); //возвращает размер в килобайтах, если размер файла менее одного мегабайта else return string.Format("{0} B", sizeinbytes); //возвращает размер в байтах, если размер файла менее одного килобайта } catch { return "Ошибка получения размера файла"; } //перехват ошибок и возврат сообщения об ошибке }Запустите ваш проект, и нажмите на единственную кнопку вашей главной формы. В открывшемся диалоговом окне, выберете любой файл и нажмите кнопку «Открыть», результатом работы будет сообщение с размером файла. Если файл меньше гигабайта, то он будет представлен в мегабайтах, с килобайтами соответственно.
Ссылка на исходник: Rusfolder.net
Комментариев нет:
Отправить комментарий
Большая просьба, не писать в комментариях всякую ерунду не по теме!