Що означають розміри файлів та папок у Windows: Розмір та Розмір на диску?

Що означають розміри файлів та папок у Windows?

Коли ми переглядаємо властивості файлів та папок у Windows, часто помічаємо два значення: “Розмір” і “Розмір на диску”. Багато користувачів не задумуються над тим, чому ці числа відрізняються і що насправді означає кожне з них. Однак для тих, хто хоче ефективно керувати своїм дисковим простором, розуміння цих показників може стати корисним інструментом.

У цій статті ми розглянемо, що саме означають ці два значення, звідки вони беруться і чому між ними є різниця. Ми також пояснимо, як Windows розраховує ці показники та чому “Розмір на диску” часто відображає більшу кількість мегабайт, ніж фактичний розмір файлів. Дізнавшись ці деталі, ви зможете краще зрозуміти, як Windows керує файлами, а також отримаєте кілька корисних порад щодо управління дисковим простором на вашому комп’ютері.

Коли ви клацаєте правою кнопкою миші, щоб переглянути властивості папки, на екрані властивостей відображаються два значення: “Розмір” і “Розмір на диску”. Що ж означають ці значення і що вони вимірюють?

Екран властивостей виконує простий рекурсивний пошук усіх файлів у директорії. Він не фільтрує імена файлів, які посилаються на один і той самий файл через жорстке посилання. Якщо у вас немає доступу до підкаталогу, рекурсивний пошук пропустить його, і ці файли не будуть враховані в загальному розмірі папки.

Як виявляється, рекурсивний пошук має деякі хитрощі. Частина з них навмисна: він розпізнає точки повторного аналізу і не заглиблюється в них. Інша частина хитрощів — випадкова: символічні посилання на файли мають нульовий розмір. Це не тому, що код пошуку директорій хитро обробляє файли, а тому, що запис у директорії для символічних посилань позначає їх як файли з нульовим розміром. Тепер ви знаєте, які файли враховуються, але звідки беруться ці значення?

Розмір має значення

Розмір – це просто поточна сума розмірів файлів, які повертає функція `FindFirstFile` у `WIN32_FIND_DATA.nFileSizeLow` та `nFileSizeHigh`. Ці значення також можуть бути неточними через те, як файлова система NTFS оновлює записи в директоріях. Це окрема тема, але коротко: файли, до яких ще записується інформація, можуть не відображати точний розмір до моменту, коли буде закрито дескриптор файлу. Навіть тоді він оновить лише запис у директорії, який використовувався для відкриття файлу.

“Розмір на диску” – це складніше. Якщо диск підтримує стиснення (як повідомляє прапорець `FILE_FILE_COMPRESSION`, що повертається функцією `GetVolumeInformation`) і файл стиснутий або розріджений (`FILE_ATTRIBUTE_COMPRESSED`, `FILE_ATTRIBUTE_SPARSE_FILE`), то “Розмір на диску” для файлу – це значення, яке повертає функція `GetCompressedFileSize`. Це повідомляє про стислий розмір файлу (якщо стиснутий) або розмір файлу без частин, які були деактивовані та логічно вважаються нулями (якщо розріджені). Якщо файл не стиснутий і не розріджений, то “Розмір на диску” – це розмір файлу, який повертає `FindFirstFile`, округлений до найближчого кластера.

Команда Windows 95 розробила алгоритм для “Розміру на диску”. Їхнє уявлення про файлову систему було сформоване MS-DOS, де єдина файлова система на диску була FAT, і не існувало таких понять, як жорстке посилання чи альтернативний потік даних. Вміст файлів зберігався у вигляді кластерів.

Ці припущення не стосуються NTFS – навіть твердження, що вміст файлів зберігається в одиницях кластерів, тут не зовсім правильне. У NTFS файл може фактично використовувати нуль кластерів для зберігання даних, розміщуючи їх у вільному просторі в головній таблиці файлів (MFT).

Природно, що алгоритм “Розміру на диску” не враховує інші накладні витрати файлової системи, такі як місце на диску, зайняте іменем файлу, інформацією про запис у директорії, метаданими файлу та альтернативними потоками даних.

Значення, яке повідомляють “Розмір” і “Розмір на диску”, не є точним підрахунком впливу каталогу на вільне місце на диску. Це лише приблизна оцінка, заснована на припущенні, що більшість файлів є “нудними” – тобто не мають жорстких посилань і майже не використовують альтернативні потоки даних. Якщо у вас є каталог з численними жорсткими посиланнями, як-от сам каталог Windows, значення будуть сильно відрізнятися.

Ви можете використовувати “Розмір на диску” як первісну оцінку, щоб приблизно визначити розмір каталогу, але пам’ятайте, що це примітивне обчислення. Якщо вам потрібно уважно стежити за споживанням дискового простору, краще скористатися функцією, як-от квоти диска, яка призначена для більш точного відстеження використання дискового простору.

Потрібен сайт, консультація, анімація або графічний дизайн? Лишіть заявку і я з вами зв'яжуся!
Підтримати розвиток ресурсу



Підтримати проєкт через Monobank

Translate »