Windows riservate: Solo che cos'È 'Dimensioni su disco'?
Quando si ottengono le statistiche relative alla dimensione di una cartella, da dove provengono esattamente tali misurazioni?
Raymond Chen
Quando destro del mouse per visualizzare le proprietà di una cartella, la finestra delle proprietà include due valori: dimensioni e dimensioni su disco. Che cosa esattamente questi valori? Che cosa si sta misurando?
La finestra delle proprietà consente di eseguire una ricerca di directory naïve ricorsiva per tutti i file. Non tenti di filtrare i nomi di file che fanno riferimento allo stesso file sottostante di un collegamento fisso. Se non si dispone di accesso a una sottodirectory, la ricerca ricorsiva nella directory ignorerà tale sottodirectory e i file non verranno conteggiati nelle dimensioni totali della cartella.
In realtà, la ricerca ricorsiva nella directory dispone di alcuni incluso. Parte di essa è stata intenzionalmente smart: rileva i punti di analisi e non ricorsivo al loro interno. Un'altra parte è in corso smart accidentalmente: dimensione di zero il conteggio collegamenti simbolici dei file. Perché il codice di ricerca di directory è intelligente sui file. È la voce di directory per i collegamenti simbolici vengono segnalati con dimensione zero. Adesso si sa quali file, vengono conteggiate tali numeri da dove provengono?
Questioni di dimensione
La misura delle dimensioni è semplice: È un conteggio delle dimensioni dei file aggiornato man mano che trovaprimoil WIN32_FIND_DATA di File di funzione. /nFiledimensionebassa e /nFiledimensionealta. É tali valori non sono necessariamente accurati a causa del modo in cui NTFS le voci di directory di sistema gli aggiornamenti di file. Questo è un argomento per un altro giorno, ma la versione breve è che i file ancora da scrivere non potrebbero segnalare una dimensione del file accurate fino a quando non viene chiuso l'handle di file. Anche allora aggiornerà solo la voce di directory utilizzata per aprire il file.
Le dimensioni di misurazione del disco sono più complessa. Se l'unità supporta la compressione (man mano che il flag FILE_FILE_COMPRESSION restituito da GetVolumefunzione di informazioni) e il file è compresso o sparse (FILE_ATTRIBUTE_COMPRESSED, FILE_ATTRIBUTE_SPARSE_FILE), la dimensione su disco per un file è il valore indicato da GetcompressaFilefunzione le dimensioni. Ciò indica la dimensione compressa del file (se compresso) o la dimensione del file meno le parti che sono stati liberati e gestito in modo logico come zero (se frammentato). Se il file è compresso, né sparse, quindi la dimensione su disco è la dimensione del file indicata dal trovaprimofunzione arrotondato per eccesso al più vicino cluster di File.
Il team di Windows 95 originariamente sviluppato le dimensioni sull'algoritmo di disco. La visualizzazione di tutto il mondo di file system è stato distorto lo sfondo di MS-DOS. Il file system su disco solo durante la FAT. Non è disponibile un collegamento fisso o un flusso di dati alternativi. Contenuto del file sono stati immagazzinati in unità di cluster.
Tali presupposti non valere per NTFS, nemmeno la parte "contenuto del file viene memorizzate in unità di cluster". File system NTFS, un file può utilizzare effettivamente zero cluster per i propri dati dalla stessa stashing nello spazio di margine di flessibilità nella tabella file master (MFT). (Per ulteriori informazioni, vedere "Le quattro fasi di crescita dei File NTFS. ")
Naturalmente, la dimensione all'algoritmo disco non prendere in considerazione altri file di un sovraccarico del sistema, come lo spazio su disco occupato dal nome del file stesso, informazioni sulla voce di directory, i metadati dei file e flussi di dati alternativi.
I valori riportati dalla dimensione e la dimensione su disco non sono considerati una contabilità di byte per byte dell'impatto complessivo di una directory di spazio libero su disco. È solo una stima approssimativa basata sul presupposto che la maggior parte dei file sono della varietà noioso. Da tale, non intendo collegamenti fissi e l'utilizzo trascurabile di flussi di dati alternativi. Se si dispone di una directory con numerosi collegamenti fissi, ad esempio la directory di Windows, ad esempio, i valori saranno fuori.
È possibile utilizzare dimensioni su disco come un test di analisi per ottenere un'idea approssimativa della dimensione di una directory, ma è importante ricordare che si tratta di un calcolo naïve. Se è necessario mantenere un'attenta schede sul consumo di disco, è meglio utilizzare una funzionalità come le quote disco, aventi lo scopo è quello di rintracciare più intelligente consumo del disco.
Raymond Chen's di sito Web, The Old New Thing, tenendo in considerazione con la cronologia di Windows, Win32, programmazione e indicando jokes a tre-anno-rivolto libro dall'omonimo titolo (Addison-Wesley, 2007).