Как определить объем файла. В чем измеряется информация и как определить размер файла или папки? Что такое размер файла и папки


Наверное, Вы часто видите на сайтах подпись с указанием размера файла. Данный показатель сам никто не подписывает. Этот вопрос решается написанием функции на php. В результате она будет выводить строчку вида:

Размер файла: 2.3 Мб
Очень удобно в случае скачивания каких-либо материалов с сайта. Итак, приступим.

Создаём функцию PHP, определяющую размер файла

Функция будет довольно проста и понятна. Использует в себе три встроенные функции:

file_exists - проверка на наличие указанного файла или каталога.

filesize - определить размер файла. Возвращает результат в байтах. Если файл больше 2 Гб, то, в зависимости от сервера, может выводить некорректный результат.

round - встроенная функция, укорачивающая выводимое значения до целого числа и одной десятой после разделительного знака точки.
Функция проверяет наличие самого файла, затем последовательно пытается определить насколько велик размер файла - если больше 1024 байт, то результат следует выводить в Мб, если больше 1024 Мб, то следует выводить в Гб. А в конце каждого этапа встроенная функция round округляет результат с множества цифр до целого значения и одной десятой с разделительным знаком.

Теперь создаём файл функции. Подобные файлы принято содержать в отдельной папке. Например function .

Код PHP (файл function.php )

// аргументов функции будет путь к файлу
function get_filesize($file)
{
// идем файл
if(!file_exists($file)) return "Файл не найден";
// теперь определяем размер файла в несколько шагов
$filesize = filesize($file);
// Если размер больше 1 Кб
if($filesize > 1024)
{

// Если размер файла больше Килобайта
// то лучше отобразить его в Мегабайтах. Пересчитываем в Мб
if($filesize > 1024)
{
$filesize = ($filesize/1024);
// А уж если файл больше 1 Мегабайта, то проверяем
// Не больше ли он 1 Гигабайта
if($filesize > 1024)
{
$filesize = ($filesize/1024);

return $filesize." ГБ";
}
else
{
$filesize = round($filesize, 1);
return $filesize." MБ";
}
}
else
{
$filesize = round($filesize, 1);
return $filesize." Кб";
}
}
else
{
$filesize = round($filesize, 1);
return $filesize." байт";
}
}
?>
Функцию мы создали. Далее остаётся её применить.

Код PHP

include_once "function/function.php"; // подключаем файл с функцией

// вставляете путь или переменную с путём для обработки его функцией
$size = get_filesize ("images/photo.jpg");
echo "Размер файла: ".$size.""; // выводим результат с размером
?>
Всё готово! Пользуйтесь на здоровье!
Спасибо за внимание! И удачи в работе!

Каждый файл и каждая папка с файлами занимает на компьютере определенное место. То есть у всех файлов и папок есть объем, другими словами, вес или размер.

Мы привыкли к таким понятиям, как граммы и килограммы, метры и километры. В компьютере тоже есть свои единицы измерения. В них мы будем измерять файлы и папки. Другими словами, мы будем определять сколько «весит» тот или иной файл или папка. Исчисляется этот «вес» в байтах, килобайтах, мегабайтах и гигабайтах.

А сейчас прейдем к практике. Посмотрите на эту схему размеров :

Это очень простая схема. Расшифровывается она так:

1 КБ = 1024 байта; 1 Мб = 1024 Кб; 1 Гб = 1024 Мб

А теперь более подробно:

В одном КБ (килобайте) находятся 1024 байта
В одном МБ (мегабайте) находятся 1024 КБ (килобайта)
В одном ГБ (гигабайте) находятся 1024 МБ (мегабайта)

Для чего же нам нужны размеры?! Например, для того, чтобы определить, сможем ли мы записать файл/папку на диск или флешку.

Для того чтобы мы смогли это определить, нам нужно знать, сколько информации помещается на диск или флешку. Воспользуемся схемой:

Флешка — от 1 ГБ

CD диск — 700 МБ

DVD диск — от 4 ГБ

Стандартный объем DVD диска равен 4,7 Гб. Еще бывают двусторонние DVD диски. Это означает, что запись может быть с двух сторон - и с одной, и со второй. У таких дисков объем 9,4 Гб. Также существуют двухслойные диски, но они менее распространены. У таких дисков объемы следующие: 1-сторонние 2-слойные - 8,5 Гб; 2-сторонние 2-слойные - 17,1 Гб.

Как узнать размер файла или папки

Чтобы узнать размер файла или папки с файлами, наведите на нее курсор (стрелку) и задержите на несколько секунд. Появится небольшое окошко с характеристикой файла или папки. Как видно на картинке, в этой характеристике указан размер:

Если при наведении на файл или папку ничего не появляется, то нажмите правую кнопку мыши на этом файле или папке. Из открывшегося списка выберите пункт «Свойства». Откроется окошко, в котором будет указан размер этого файла или папки.

А теперь потренируемся определять размер:

Задачка:

У нас имеется файл размером 30 Мб. Сможем ли мы записать его на диск? Флешку размером 1 Гб?

Решение:

На CD диск помещается 700 Мб. Наш файл занимает размер 30 Мб. 700 Мб больше, чем 30 Мб. Вывод: файл поместится на CD диск.

На DVD диск помещается 4,7 Гб. Один Гигабайт равняется 1024 Мегабайт. То есть на один DVD диск помещается около 5000 Мб. А уж 5000 Мб намного больше, чем 30 Мб. Вывод: на DVD диск наш файл поместится.

Нам дана флешка размером 1 Гб. В одном Гб содержится 1024 Мб. 1024 больше, чем 30. Вывод: на флешку 1 Гб файл поместится.

Если говорить об информации в целом, то измеряется она в БАЙТАХ. Измерение в этих единицах началось с далёкого 1956 года. Тогда этой величины вполне хватало. Чтоб было понятней, о какой величине идёт речь, скажу Вам, что 1 байт = 1 символ. С развитием технологий увеличивался и объем информации, и измерять большой объем информации в БАЙТАХ стало не удобно. Тогда появились приставки КИЛО-БАЙТ (КБ), МЕГА-БАЙТ (МБ), ГИГА-БАЙТ (ГБ), ТЕРА-БАЙТ (ТБ) и т.д.

Для понимания, на сколько большие или маленькие эти величины, приведу такое сравнение:
— 1КБ (один килобайт) = 1024 байта, и это объем информации приблизительно в один печатный лист А4-го формата;

— 1МБ (один мегабайт) = 1024 килобайта, и это объем информации уже приличного томика страниц на 600-700!

— 1ГБ (один гигабайт) = 1024 мегабайт, и это уже целая библиотека из 1024 книг по 600 страниц!

— 1ТБ (один терабайт) = 1024 гигабайта, этот объем информации сравним со средней Европейской библиотекой, где содержится около 8 миллионов книг. Для примера, в Российской государственной библиотеке находится около 43 миллионов единиц.

Теперь сравним объем и вид информации относительно носителей, на которые эту информацию можно записать.

— Дискета емкостью 1,44МБ. Когда-то дискета была основным доступным носителем цифровой информации, т.к. записать на неё можно было действительно много чего. Теперь же дискеты используют в основном бухгалтера для хранения электронных ключей и подписей. Причина банальна – на дискете мало места для хранения современной информации. На дискету можно записать одну, две фотографии, сделанных на мобильном телефоне с 3х мегапиксельной камерой; пять, десять Word, Excel документов.

— Флешка емкостью 1ГБ. Самый удобный на сегодняшний момент носитель информации. Емкость флешки 1ГБ я взял для кратности счёта, а вообще на момент написания статьи есть и 64ГБ флешки!
Что же можно записать на флешку емкостью 1ГБ: один фильм, относительно неплохого качества; около 200 музыкальных файлов в формате.mp3; около 200 фотографий хорошего качества; множество документов и программ небольшого размера.

— CD диск емкостью 700МБ. На CD диск можно записать: один фильм в формате.avi, в относительно хорошем качестве; около 150 музыкальных файлов в формате.mp3; около 150 фотографий хорошего качества; множество документов и программ небольшого размера.

— DVD диск емкостью 4,7ГБ. На DVD диск можно записать: один фильм в формате DVD или HDTV; 4-5 фильмов в формате.avi хорошего качества; около 1200 музыкальных файлов в формате.mp3; около 1000 фотографий хорошего качества; оооочень много документов и программ.

— Винчестер емкостью 120ГБ. Тут, чтобы не расписывать до документов, сравню с количеством фильмов, которые можно записать на такой винчестер. Так вот, на винчестер емкостью 120 ГБ можно записать 25 фильмов в DVD или HDTV качестве!

Теперь давайте по очереди разбираться, как определить размер диска, файла или папки.
В Windows определить размер файла, папки или диска можно в ПРОВОДНИКЕ. Запустить «Проводник» можно кликнув ДВА раза ЛЕВОЙ кнопкой мыши по ярлыку «Мой компьютер» на рабочем столе или с помощью комбинации клавиш «Win+E».

Если Вы, например, хотите узнать, сколько свободного места осталось на диске, в частности на флешке, то кликаете ПРАВОЙ кнопкой мыши по изображению съемного диска, обычно он подписан как «Съемный диск (F:)» или «Название флешки (F:)», как на рисунке:

Так вот, кликаете ПРАВОЙ кнопкой мыши по изображению съемного диска – флешки и выбираете в открывшемся меню пункт «Свойства», в самом низу. После этого открывается окно:


Тут видно сколько занято (выделено синим), сколько свободно (выделено розовым) и сколько всего места на диске.

Таким образом, можно узнать остаток свободного места не только на флешке, но и на любом съемном или логическом диске винчестера.

Схема определения размера файла или папки такая же, как и с диском. Т.е. находите на диске нужный файл или папку, кликаете на нем (-ней) ПРАВОЙ кнопкой мыши и смотрите «Свойства».


Там будет вся необходимая информация.


Если Вы хотите узнать размер группы файлов или папок, то их надо выделить и проделать те же операции, т.е. кликнуть ПРАВОЙ кнопкой мыши по одному из выделенных файлов или папок, выбрать «Свойства» и посмотреть размер.

Да, вторая часть урока не совсем попадает в рубрику «Компьютерные азы», но тем не менее. Если у вас возникнут вопросы, Вы всегда сможете их задать в комментариях.

Стандарт POSIX имеет свой собственный метод для получения размера файла.
Включите заголовок sys/stat.h для использования функции.

конспект

  • Получить статистику файла, используя stat(3) .
  • Получите свойство st_size .

Примеры

Примечание . Размер ограничен 4GB . Если не Fat32 система Fat32 тогда используйте 64-битную версию!

#include #include int main(int argc, char** argv) { struct stat info; stat(argv, &info); // "st" is an acronym of "stat" printf("%s: size=%ld\n", argv, info.st_size); } #include #include int main(int argc, char** argv) { struct stat64 info; stat64(argv, &info); // "st" is an acronym of "stat" printf("%s: size=%ld\n", argv, info.st_size); }

ANSI C (стандарт)

ANSI C не предоставляет прямой способ определения длины файла.
Нам придется использовать наш разум. Сейчас мы будем использовать подход поиска!

конспект

  • Найдите файл до конца, используя fseek(3) .
  • Получить текущую позицию, используя ftell(3) .

пример

#include int main(int argc, char** argv) { FILE* fp = fopen(argv); int f_size; fseek(fp, 0, SEEK_END); f_size = ftell(fp); rewind(fp); // to back to start again printf("%s: size=%ld", (unsigned long)f_size); }

Если файл stdin или труба. POSIX, ANSI C не будет работать.
Будет возвращаться 0 если файл представляет собой канал или стандартный stdin .

Мнение : Вы должны вместо этого использовать стандарт POSIX . Потому что он имеет поддержку 64 бит.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: