Wie viel Speicherplatz verbrauchen Verzeichnisse?

Wie viel Speicherplatz verbrauchen Verzeichnisse?

Wie viel Speicherplatz nehmen leere Verzeichnisse ein?

Im Windows- und NTFS-Dateisystem heißt es „0 Bytes“, was unmöglich ist.

Wie viel Speicherplatz nimmt ein Verzeichnis tatsächlich ein? Hängt das vom Dateisystem oder Betriebssystem ab?

Antwort1

Technisch gesehen zeigt Ihnen das Eigenschaftenfenster den Inhalt des Ordners, der, wenn er leer ist, auf jeder Festplatte 0 Bytes belegt.

Ihre Frage bezieht sich auf den Speicherplatz des OrdnersStrukturbelegt auf einem Dateisystem, das offensichtlich davon abhängig ist. Auf FAT32 müssen Sie nur einige Flags (versteckt, archiviert) sowie den Namen und Pfad speichern. Auf NTFS müssen Sie auch Berechtigungen und einige andere Dinge speichern. Alles in allem ist dieser Speicherplatz nahezu vernachlässigbar.

Der Speicherplatz ist ein leeres VerzeichnisStrukturbelegt, hängt vom Namen und Ordnerpfad ab. Nehmen wir beispielsweise an, Sie platzieren alle Ordner auf einem Stammlaufwerk (sagen wir C:) und verwenden alle 26 alphabetischen Zeichen. Bei 1 Milliarde eindeutiger Namen erhalten Sie einen Ordnernamen mit log_26 (1.000.000.000) = ungefähr 7 (6,3065) Zeichen Länge. 7 Bytes * 1.000.000.000 entsprechen also ungefähr 7 GB Speicherplatz.

Dies ist ein Minimum, das nur auf dem Platz basiert, den Namen in einer Struktur einnehmen müssen. Wie gezeigt wird, speichern Dateisysteme in ihrer Dateistruktur viel mehr Informationen als nur Dateinamen.

Ich glaube, ich habe etwa 1 Million Ordner und Dateien auf all meinen Laufwerken, sodass dieser Wert in Wirklichkeit nicht einmal erreicht wird. Vergessen Sie nicht, dass dies eine sehr grobe Schätzung ist.


Die derzeit am häufigsten verwendeten Dateisysteme sind (vermutlich) FAT (File Allocation Table) und NTFS (New Technology File System).FETTwie wir wissen, wird es seit 1996 verwendet, als Windows 95 mit FAT32 veröffentlicht wurde. Obwohl es durch andere, robustere Dateisysteme wie NFTS (Windows), HFS+ (OSX) oder ext3 (Linux) ersetzt wurde, wird es immer noch häufig in Handheld-Geräten oder in Speicherkarten oder Flash-Laufwerken verwendet, da es von den meisten Betriebssystemen gut unterstützt wird und vor allem einfach ist.

Nun zum Wesentlichen. Dateien und Verzeichnisse in einer FAT-Partition haben, auch wenn sie nichts enthalten, einen Namen, einen Speicherort, bestimmte Attribute usw., die in einer Zone namensVerzeichnistabelle.

DerVerzeichnistabelleist eine spezielle Datei (d. h. sie ist vor der normalen Verwendung verborgen, sodass nur das Betriebssystem und bestimmte Anwendungen direkt darauf zugreifen können). Sie stellt ein Verzeichnis (auch Ordner genannt) dar und jede darin gespeicherte Datei oder jeder Ordner hat einen 32-Byte-Eintrag in der Tabelle.Verzeichnistabelleeine Datei ist, belegt sie einen oder mehrere Cluster (also Kästen mit einer voreingestellten Größe innerhalb einer Festplatte, in die nur eine einzige Datei (oder ein Teil davon) passt).

Jeder Ordner oder jedes Verzeichnis auf einem modernen Laufwerk (>512 MB) hatmindestensein Overhead von 4 KB, um die Tabelle zu speichern(Quelle)Das bedeutet jedoch, dass Sie 128 verschiedene Dateien (4 * 1024 B / 32 B = 128) im selben Ordner speichern können und der Overhead beim Speichern der Datensätze mit 4 KB immer noch derselbe ist wie zuvor.

Wenn man das erste Beispiel hinzunimmt, würde das bedeuten, dass die Milliarden Ordner einen Overhead von 32 GB hätten, statt der von mir berechneten grob geschätzten 7 GB. Diese 32 GB speichern nicht nur den Kurznamen (8 ASCII-Zeichen), sondern auch die Attribute, Flags, Zugriffs-, Erstellungs- und Änderungsdaten und andere Legacy-Attribute.

Wenn Sie dies alles lesen, werden Sie sich vielleicht fragen: „Das ist ja alles schön und gut, aber wie sieht es mit langen Namen aus, wieWabbajackoder sogar haschige Namen wiee4d909c290d0fb1ca068ffaddf22cbd0, gelagert?"

Microsoft hat sich entschieden, diese Funktion in Windows 95 hinzuzufügen, um die Benutzerfreundlichkeit zu verbessern. Um ein „nahezu standardmäßiges“ System nicht zu beschädigen, wurde ein netter Workaround namens VFAT (Virtual FAT) verwendet. Um den langen Dateinamen in die Datei einzufügen, wurden vor dem eigentlichen Dateidatensatz zusätzliche Datensätze geschrieben (mit einigen speziellen Attributen, die von früheren Systemen nicht gesehen wurden). Das System mit langen Dateinamen erlaubt eine maximale Länge von 255 UTF-16-Zeichen (Unicode).(Quelle) (Quelle).

Wenn Sie das erste Beispiel so ändern würden, dass jeder Ordner 9 Zeichen hätte, würde sich der Overhead von 32 GB auf 64 GB verdoppeln, da zum Speichern des langen Namens ein weiterer Datensatz geschrieben werden müsste.


Entsprechend derWikipediaArtikel über NTFS, alle Berechtigungen werden in der Master File Table gespeichert. Der Speicherplatz kann offensichtlich durch die Defragmentierung der Festplatte angezeigt werden, wie inHier.

Die Größe, die ein MFT-Datensatz sowohl in einem Ordner als auch in einer Datei einnimmt, wird beschrieben inHier:

Datei- und Ordnerdatensätze sind jeweils 1 KB großund werden in der MFT gespeichert, deren Attribute in den zugewiesenen Speicherplatz in der MFT geschrieben werden. Neben Dateiattributen enthält jeder Dateidatensatz Informationen über die Position des Dateidatensatzes in der MFT.

Wenn die Attribute einer Datei in den MFT-Dateidatensatz für diese Datei passen, werden sie als residente Attribute bezeichnet. Attribute wie Dateiname und Zeitstempel sind immer resident. Wenn die Menge an Informationen für eine Dateipasst nichtin seinem MFT-Dateidatensatz werden einige Dateiattributenicht ansässige.Nichtresidente Attribute erhalten einen oder mehrere Cluster an Speicherplatz. Ein Teil des nicht residenten Attributs verbleibt in der MFT und verweist auf die externen Cluster. NTFS erstellt das Attribut „Attributliste“, um den Speicherort aller Attributdatensätze zu beschreiben. Die Tabelle „NTFS-Dateiattributtypen“ listet die derzeit von NTFS definierten Dateiattribute auf.

Daher belegen Ordner in NTFS mindestens 1 KB Speicherplatz, es sei denn, sie verfügen über sehr lange Argument- und Berechtigungslisten. In diesem Fall belegt der MFT-Eintrag einen zusätzlichen Cluster in der Partition, dessen Größe von der Formatierung abhängt, obwohl Microsoft in diesem Beitrag für mehr als 2 GB 4-KB-Cluster empfiehlt.

Antwort2

Als Beispiel aus der Praxis habe ich einfach meinen freien Speicherplatz aufgezeichnet, dann eine große Verzeichnisstruktur erstellt und den neuen freien Speicherplatz abgezogen, um herauszufinden, wie viel Speicherplatz verwendet wurde. Ich habe Verzeichnisse 0-6 für jeden Wochentag erstellt, dann Verzeichnisse 0-23 für die Stunden des Tages und dann 0-59 für die Minuten der Stunde. Insgesamt sind das 10.080 Verzeichnisse. Meine Festplattennutzung hat sich um 6.926.336 Bytes geändert. Das entspricht 687 Bytes pro Verzeichnis. Falls es Sie interessiert: Das entspricht auch 0,0006 % eines 1-TB-Laufwerks (wenn Sie 1 TB als 1024^4 berechnen).

Antwort3

Unter Windows 10 habe ich 1.000.000 leere Ordner erstellt und laut PythongetsizeFunktion, es hat 200540160 Bytes Speicherplatz beansprucht. Das sind durchschnittlich 200,54016 Bytes pro Ordner.

verwandte Informationen