Pe ferestrele de primă mână

În cazul în care, de fapt, provin de la informațiile din conductorul cu privire la dimensiunea unui dosar?

Raymond Chen

Dacă faceți clic dreapta pe folderul, și deschide pagina de proprietate, veți vedea două opțiuni: „Dimensiune» (Dimensiune) și „CD» (Dimensiune pe disc). Ce anume înseamnă aceste cifre? Ce măsoară?







La primirea informațiilor privind proprietățile paginii este la fel de simplu ca o căutare recursive pentru toate fișierele din dosar. În acest caz, nu se face nici o încercare de a filtra nume de fișiere se referă la același fișier fizic, folosind link-uri hard. Dacă nu aveți acces la orice subfolder, căutare recursiv va ignora și dimensiunea fișierelor din ea nu va primi cifra totală.

Dar se dovedește că într-o căutare recursiv pentru a subfolderele are propriile sale trucuri. sunt detectate reanalizare puncte și tranziții recursive care nu sunt realizate: Unul dintre trucuri „speciale“. Un alt truc este cauzat de o coincidență: dimensiunea link-uri simbolice la fișierele nu sunt luate în calcul. Motivul pentru care nu este special „înțelepciunea“ a codului de căutare pentru subfoldere, și că dimensiunea sistemului de fișiere de link-ul simbolic este considerat a fi zero. Acum știm cum dimensiunea fișierului este considerat a fi, dar în cazul în care sunt cifrele menționate?

Mărimea contează

Dimensionarea nu este o problemă - doar a obține o listă cu dimensiunile tuturor fișierelor returnate de găsire Prima fișier în structura WIN32_FIND_DATA (nFișierul-Size-Low și nFișierul-Size-High). Dar trebuie să ne amintim că aceste cifre nu sunt neapărat adevărate datorită particularităților intrărilor din directorul de actualizare din sistemul de fișiere NTFS. Este posibil să se dedice o carte întreagă, dar pe scurt linia de jos este că informațiile returnate privind dimensiunea fișierelor, înregistrarea care nu a fost finalizată, nu este valabilă până când este închis descriptor de fișier. Dar chiar și după aceea va fi actualizat de intrare director, care a fost folosit pentru a deschide fișierul.







Cu parametrul „pe unitatea» (Dimensiune pe disc) este încă și mai dificilă. În cazul în care unitatea acceptă compresie (care poate fi găsit pe steagul FILE_FILE_COMPRESSION, returnate de Get-volum-Information), iar fișierul este comprimat, sau iritabil (steaguri FILE_ATTRIBUTE_COMPRESSED, FILE_ATTRIBUTE_SPARSE_FILE), valoarea „Pe unitatea“ acest fișier va fi egală cu valoarea returnată de Get- comprimat-File-Size. Această dimensiune comprimat fișier (dacă este comprimat) sau dimensiunea fișierului minus părțile rămase neocupate, care sunt în mod logic, considerate a fi gol (dacă este un fișier rar). Dacă fișierul este rarefiat sau comprimat, parametrul „CD-ul“ este valoarea returnată de Find-First-File, după rotunjire la cel mai apropiat cluster.

Toate aceste principii la NTFS nu funcționează - chiar principiul stocarea fișierelor în clustere. Fișierul NTFS poate dura clustere zero pentru date, cu o ședere în spațiul (master file table, MFT) MFT. Pentru detalii, a se vedea. Articolul Cele patru etape de creștere NTFS fișier. Firește, parametrul „Discul“ nu ia în considerare spațiul necesar pentru a stoca fișierul sistem de fișiere, cum ar fi spațiul ocupat de numele de fișier, intrările director, fișierele de metadate și fluxuri de date alternative.

Valorile afișate în parametrii „Size» (dimensiune) și „CD» (Dimensiune pe disc) nu ar trebui să fie utilizat ca dimensiunea exactă a «octet» spațiul total ocupat de fișiere de pe disc. Aceasta este doar o estimare aproximativă bazată pe presupunerea că cele mai multe dintre fișierele standard și formatele de fișiere exotice nu sau foarte puțin. Vreau să spun că nu există legături greu și neglijabile fluxuri de date alternative. În cazul în care catalogul dvs. o mulțime de link-uri dure, cum ar fi, de exemplu, Windows-directoare în sine, numerele de pe pagina de proprietate va fi incorectă.

Valorile raportate de dimensiune și Dimensiune pe disc nu sunt menite să fie un contabil octet-pentru-octet a impactului total al unui director de pe spațiu liber pe disc. Sunt doar o estimare aproximativă bazată pe presupunerea că cele mai multe fișiere sunt din soiul plictisitor. Prin asta, vreau să spun nici un link-uri hard și utilizarea neglijabilă a fluxurilor de date alternative. Dacă aveți un director cu numeroase link-uri, cum ar fi hard directorul Windows sine, de exemplu-valorile vor fi departe de.

Puteți utiliza directorul „pe disc“, ca o estimare a mărimii, dar ține cont de faptul că aceasta este o cifră foarte de bază. Dacă trebuie să monitorizeze cu atenție utilizarea de spațiu pe disc, cel mai bun de a utiliza cotele de disc, care poate efectua cu mai multă precizie sarcina.