2011-02-10 19 views
6

Ho una domanda semplice.I file 0 byte sono veramente 0 byte?

Quando creiamo un file, diciamo "abc.txt" e lascialo vuoto.
Il sistema operativo mostrerà che il file ha una dimensione pari a 0 byte e occupa 0 byte sul disco.

Se salviamo 100 di questi 0 byte in una cartella, il SO dirà anche che la dimensione totale della cartella è 0 byte.

Questo può sembrare logico perché non c'è nulla nel file. Ma questi file non dovrebbero prendere almeno alcuni byte nel dispositivo di archiviazione?

Dopo tutto, lo abbiamo salvato da qualche parte e lo abbiamo chiamato qualcosa. Il nome del file e forse anche altri header non dovrebbero occupare spazio?

+0

Sì, occupa un po 'di spazio. I numeri riportati dal sistema operativo sono arrotondati. –

risposta

4

No, occupano ancora alcuni byte sul file system. Altrimenti implementerei un sistema di file ordinato che memorizza tutto in termini di nomi di file su file vuoti.


Per me in realtà si riduce a una questione di definizione. La "dimensione di un file" si riferisce a la dimensione del contenuto del file oppure si riferisce alla "differenza" che crea in termini di byte liberi sul file system sottostante (ovvero, dimensione di contenuto (arrotondato al blocco più vicino o alle dimensioni del cluster) + byte utilizzati per il suo inode).

+0

Quindi, in pratica, il sistema operativo nasconde tutte queste informazioni da noi? – Karl

+0

Beh, dipende da come lo vedi. Se hai un [FAT] (http://en.wikipedia.org/wiki/File_Allocation_Table) o simili, potrebbe essere una questione di definizione, indipendentemente dal fatto che il nome del file, il percorso e così via, sia parte del file stesso . – aioobe

2

Questi dettagli sono memorizzati in quello che è noto come File Allocation Table (parlando in contesto Windows FAT) tradizionalmente. Vengono creati quando formattiamo il disco rigido. Per esso è stato assegnato uno spazio predefinito. Non penso che le dimensioni cambino.

Ad esempio, si formatta un disco rigido da 100 GB, solo 90+ GB sono disponibili per l'uso. Un altro spazio viene utilizzato dal file system per gestire/ricordare ogni file/cartella che viene salvato sul disco rigido e dove viene salvato.

2

Il fatto che siano presenti su disco significa che per loro è stato creato un record, che ovviamente richiede una certa quantità di memoria. I 0 byte corrispondono semplicemente alla dimensione logica del file arrotondata alla granularità visualizzata nell'interfaccia utente, ma anche in quel caso probabilmente contiene un'intestazione del file che dipenderà dal formato del file.

2

La risposta a questa domanda dipende dal file system.

Ad esempio, in NTFS un file vuoto occupa un cluster e un cluster ha una dimensione che dipende dalla dimensione del disco rigido.

Here è possibile leggere alcune dimensioni cluster comuni per i file system di Windows.

Problemi correlati