На прозорците на първа ръка

Къде всъщност идват от информацията в проводника за размера на папка?

Raymond Chen

Ако щракнете с десния бутон върху папката и да отвори своя страница имот, ще видите две възможности: "Размер» (размер) и "The CD» (размер на диска). Какво точно означават тези стойности? Какво правят те се измери?







След получаване на информация за свойствата на страницата е толкова просто, колкото рекурсивно търсене за всички файлове в папката. В този случай, не е направено, за да филтрира имената на файловете се отнасят до едни и същи физически файл, като се използват твърди връзки. Ако не разполагате с достъп до всяка подпапка, рекурсивно търсене ще игнорира това и размера на файловете в нея няма да получи общо фигура.

Но се оказва, че в рекурсивно търсене на подпапки има своите трикове. Един от "специални" трикове: повторна обработка точки са открити и рекурсивни преходи не са направени. Друг трик е причинена от случайно: на размера на символни връзки към файлове не се броят. Причината не е специален "мъдрост" на кода за търсене, за да подпапки, както и че размерът на файла система на символната връзка се счита за нула. Сега ние знаем как се смята за размера на файла, за да бъде, но къде са споменати цифрите?

Размерът има значение

Определянето на размера не е проблем - просто получите списък с размерите на всички файлове, върнати от Find-First-файла в WIN32_FIND_DATA структура (nFile размер-ниско и nFile размер-висока). Но ние трябва да помним, че тези цифри не са непременно верни заради особеностите на записите за актуализация директория във файловата система NTFS. Възможно е да се посвети цяла книга, но накратко най-долния ред е, че се връща информация за размера на файловете, записите на които не е завършена, тя не е валидна, докато не бъде затворен дескриптора на файла. Но дори и след това тя ще бъде актуализирана влизане директория, която е била използвана, за да отворите файла.







С параметър "На път с кола» (Размер на диска) е все още по-трудно. Ако устройството поддържа компресия (която може да бъде намерена на флага на FILE_FILE_COMPRESSION, върнати от Get-Volume-информация), и файлът е компресиран или раздразнителни (FILE_ATTRIBUTE_COMPRESSED знамена, FILE_ATTRIBUTE_SPARSE_FILE) стойността "По пътя" на този файл ще бъде равна на стойността, върната от Get- сгъстен върху размера на файловете. Това компресиран размер на файла (ако е компресиран) или размера на файла минус незаетите части, които са логически считат за празни (ако това е разпръснат файл). Ако файлът е рядка или сбито параметъра "Компактдискът" е стойността, върната от Намери-First-файлове, след закръгляне до най-близкия клъстера.

Всички тези принципи към NTFS не работи - дори и на принципа на съхраняване на файлове в клъстери. Файлът с NTFS може да отнеме нула клъстери за данни, като се настаните в пространството на (таблица главен файл, MFT) на MFT. За подробности вижте. Член четирите етапа на NTFS File растеж. Естествено, параметърът "Дискът" не се вземат под внимание необходимото пространство за съхранение на система файл, файл, като пространството, заето от името на файла, записи от указателя, файлове за метаданни и алтернативни потоци данни.

Стойностите, показани в параметрите "Размер» (размер) и "The CD» (размер на диска), не трябва да бъдат използвани като точният размер на "байт" общата площ, заета от файлове на диска. Това е само приблизителна оценка въз основа на предположението, че повечето от файловете като стандарт, както и екзотични файлови формати без или с много малко. Искам да кажа, че няма твърди връзки и незначителни алтернативни потоци данни. Ако вашият каталог много твърди връзки, като, например, самите Windows-директории, числата на страницата за собственост ще са неправилни.

Стойностите, докладвани от Размер и Размер на диска не са предназначени да бъдат един байт-за-байт счетоводство от общото въздействие на дадена директория на вашия диск свободно пространство. Те са просто груба оценка въз основа на предположението, че повечето файлове са на скучен сорта. С това искам да кажа без лоши връзки и незначително използване на алтернативни потоци данни. В случай че имате директория с множество твърди връзки, като например директорията Windows себе си, например-стойностите ще бъдат далече.

Можете да използвате папката "On Disk", тъй като оценка на размера, но имайте предвид, че това е един много основен фигура. Ако имате нужда да се следи внимателно използване на дисковото пространство, най-добре да се използва дискови квоти, които могат по-точно да изпълняват задачата.