(Ein bisschen zu spät zur Antwort ...)
Wie eine Datei die Größe Null haben kann, ist etwas komplizierter als in den obigen Antworten angegeben. Die Frage ist mit "Win7" gekennzeichnet, aber der Blick auf andere "einfachere" Dateisysteme wie FAT oder NTFS kann nützlich sein, da die Konzepte ähnlich sind.
Die Festplatte "weiß" nicht, was eine Datei und was ein Verzeichnis ist. Es sind alles Daten in kleinen Blöcken. Das Betriebssystem unterscheidet zwischen der Bedeutung von Datenbausteinen. Die ersten paar a special, aber der Rest der Blöcke enthält entweder Informationen zu den Daten (z. B. Dateiname, Dateilänge, erster Datenblock, der die Daten enthält) oder die Daten selbst.
Ein Verzeichnis ist eine spezielle "Datei", deren "Daten" das Betriebssystem als Informationsblock versteht, der Informationen über Dateien enthält, nicht den Inhalt der Dateien. Eine gute Analogie ist eine physische Bibliothek und der Kartenkatalog. Stellen Sie sich die Informationsblöcke als den Kartenkatalog und die Regale als die Datenblöcke vor (der Kartenkatalog befindet sich ebenfalls auf einer regalartigen Struktur).
Wenn Sie eine Datei "erstellen" (z. B. mit dem UNIX- touch
Befehl), erstellt das Betriebssystem zunächst einen Eintrag in einem Informationsblock (Verzeichnis) mit den folgenden Angaben:
- Name = My_File.txt
- Länge = 0
- Datenblock starten = N / A
- Zusätzliche Informationen (Eigentümer, Berechtigungen, Erstellungs- / Aktualisierungs- / Änderungsdatum) usw
Nur wenn Daten zu "schreiben" sind, wird versucht, einen leeren Datenblock zum Speichern der Daten zu finden. Die Datenblöcke sind jedoch in festen Größen (z. B. 32 KB) verfügbar, auf die die Festplatte zugreifen und das Betriebssystem lesen kann. Wenn Sie nur "Hallo" schreiben, ist der größte Teil des Blocks "leer" (tatsächlich dürfen es keine Nullen sein, sondern Müll von dem, was vorher da war), so dass die Tabelle jetzt auch die Größe auf die Länge aktualisiert (sagen wir 5 Zeichen + Ende von Datei), damit Sie nicht die schlechten Sachen bekommen.
Wenn Sie die "Datei" auf eine Länge> Blockgröße aktualisieren, schreibt das Betriebssystem die Daten in den neuen Block und aktualisiert einen Datenblock, um mitzuteilen, dass die Datei nach dem ersten (und so weiter) im nächsten Block fortgesetzt wird, und die Länge wird aktualisiert neue Länge (Details abweichen).
Am Ende erhalten Sie eine Sammlung von Informationsdatenblöcken (Verzeichnisse oder Listen) mit Informationen zu den Ketten von Datenblöcken (Dateiinhalten).
Dies erklärt logischerweise auch, warum eine Datei, die sich auf demselben Dateisystem befindet, schnell blinkt, während eine Kopie lange dauert. Das Betriebssystem muss nur 2 Verzeichnisblöcke bearbeiten, um den Eintrag aus einem Verzeichnis (Informationsdatenblock) zu entfernen und zu einem anderen hinzuzufügen. Datei löschen: Entfernen Sie einfach den Eintrag im Verzeichnisblock, um die neu zuzuordnenden Dateidatenblöcke freizugeben.
ps: Nur weil der Kartenkatalog einen Eintrag für ein Buch enthält, heißt das nicht, dass er im Regal steht (ausgecheckt oder vielleicht verloren). Dateigröße 0.
pps: Ein verlegtes Buch in der Bibliothek impliziert die Suche in der Bibliothek oder in Bezug auf den Computer: chkdsk oder repair disk!
Zum besseren Verständnis lesen Sie etwas über UNIX-Inodes oder erfahren, wie Versionskontrollsysteme (ClearCase, TFS, Git usw.) nicht nur Dateien und Verzeichnisse, sondern auch Versionen von Dateien und sogar Versionen von Verzeichnissen verwalten. In den meisten Fällen wird alles in einer Datenbank gespeichert und dem Benutzer als klassische Verzeichnisstruktur und Dateien angezeigt!