Windows vertraulich: Nur was "Größe auf Datenträger" ist?

Woher kommen die Messwerte, wenn Sie die Statistik zur Größe eines Ordners anzeigen?

Raymond Chen

Wenn Sie mit der rechten Maustaste auf die Eigenschaften eines Ordners anzeigen, das Eigenschaftenfenster enthält zwei Werte: Größe und Größe auf Datenträger. Was bedeuten diese Werte genau? Was sind sie messen?

Das Eigenschaftenblatt führt eine naive rekursive Verzeichnissuche für alle Dateien. Nicht versucht, die Dateinamen verweisen auf die gleiche zugrunde liegende Datei über eine feste Verknüpfung herausfiltern. Wenn Sie Zugriff auf ein Unterverzeichnis besitzen, die rekursive Verzeichnissuche überspringt dieses Unterverzeichnis, und diese Dateien wird nicht in die Größe des gesamten Ordners gezählt werden.

Wie sich herausstellt, hat die rekursive Verzeichnissuche einige Smarts. Part of it is being smart on purpose: It detects reparse points and doesn’t recurse into them. Another part is being smart by accident: Symbolic links to files count as zero size. Dies ist nicht, da der Verzeichnis-Suche-Code über die Dateien ist. Es liegt an der Verzeichniseintrag für symbolische Verknüpfungen, die sie mit der Größe 0 meldet. Jetzt Sie wissen, welche Dateien werden gezählt, aber woher dieser Zahlen stammen aus?

Größe-Angelegenheiten

The Size measurement is easy: It’s a running tally of the file sizes as reported by the Find­First­File function in the WIN32_FIND_DATA. nFile­Size­Low and nFile­Size­High. Diese Werte sind Sie, nicht unbedingt genaue entweder aufgrund der Art der NTFS-Datei System-Updates Verzeichniseinträge. Das ist ein Thema für einen anderen Tag, aber die kurze Version ist, dass die Dateien noch geschrieben werden, um eine genaue Dateigröße nicht melden können, bis das Dateihandle geschlossen wird. Selbst dann aktualisiert es nur den Verzeichniseintrag verwendet, um die Datei zu öffnen.

Die Größe auf Datenträger-Messung ist komplizierter. Wenn das Laufwerk Komprimierung unterstützt (geleistet, das FILE_FILE_COMPRESSION-Flag von der Get zurückgegeben­Volume­Informationen-Funktion) und die Datei komprimiert ist, oder mit geringer Datendichte (FILE_ATTRIBUTE_COMPRESSED, FILE_ATTRIBUTE_SPARSE_FILE) und dann die Größe auf Datenträger für eine Datei ist der Wert wird von der Get­komprimierte­Datei­Größe der Funktion. Hiermit werden die komprimierte Größe der Datei (wenn komprimiert) oder die Größe der Datei abzüglich der Teile, die Zusicherung und (falls sparse) logisch wie 0 behandelt wurden. Wenn die Datei weder komprimierte noch mit geringer Datendichte, wird die Größe auf dem Datenträger die Dateigröße von Suchen gemeldeten ist­ersten­Datei Funktion aufgerundet zur nächsten Cluster.

Das Windows 95-Team entwickelt ursprünglich die Größe auf Datenträger-Algorithmus. Ihre Ansicht der Datei System Welt wurde mit der MS-DOS-Hintergrund gewichtet. Es war das einzige Dateisystem FAT. Gab es keine solche Sache als eine feste Verknüpfung oder alternativen Datenstrom. Inhalt der Datei wurden in Einheiten von Clustern gespeichert.

Diese Annahmen nicht für NTFS true halten – dies gilt sogar für den Teil "Dateiinhalte werden in Einheiten von Clustern gespeichert". In NTFS kann eine Datei tatsächlich Null-Cluster für die Daten belegen, durch das Verstauen von sich selbst in den Pufferbereich in der Masterdateitabelle (MFT). (Weitere Informationen hierzu finden Sie unter "The Four Stages of NTFS File Growth.”)

Natürlich die Größe auf Datenträger-Algorithmus nicht berücksichtigt andere file Systemoverhead, wie der Speicherplatz durch den Dateinamen selbst, Eintrag Verzeichnisinformationen, Dateimetadaten und alternative Datenströme belegt.

Die Werte von und -Größe auf Datenträger angegeben werden nicht als ein Byte für Byte Kontoführung für die positiven Auswirkungen eines Verzeichnisses auf dem freien Speicherplatz. Sie sind eine grobe Schätzung basiert auf der Annahme, die meisten Dateien der langweiligen Sorte sind. Meine ich keine feste Verknüpfungen und unbedeutend verwendet alternative Datenströme. Wenn Sie ein Verzeichnis mit zahlreichen feste Verknüpfungen haben – wie z. B. Windows-Verzeichnis selbst, z. B. – die Werte werden Art und Weise aus.

Können Sie Größe auf Datenträger als Sniff-Test um eine ungefähre Vorstellung von der Größe eines Verzeichnisses zu erhalten, aber denken Sie daran, dass es sich um eine Berechnung für naive ist. Wenn Sie eine sorgfältige Registerkarten auf Festplattenverbrauch behalten müssen, wären Sie empfiehlt sich die Verwendung eines Features wie Datenträgerkontingente, deren Zweck besteht darin, intelligentere Festplattenverbrauch verfolgen.

Raymond_Chen

Raymond Chen's Web site, The Old New Thing, und ein gleichnamiges Buch (Addison-Wesley, 2007) befassen sich mit der Geschichte von Windows, Win32-Programmierung und besagt auf drei Witze-Jahres-ohne Altersbeschränkung.

Verwandter Inhalt