2008-11-14 8 views
4

J'ai un dossier en NTFS qui contient des dizaines de milliers de fichiers. J'ai supprimé tous les fichiers dans ce dossier, enregistrer 1. J'ai couru contig.exe pour défragmenter ce dossier maintenant il est dans 1 fragment seulement. Cependant, la taille de ce dossier est toujours de 8 Mo. Cela implique qu'il y a beaucoup d'écart dans l'indice. Pourquoi donc? Si je supprime ce fichier, la taille de l'index passe automatiquement à zéro. Ma conjecture est parce qu'elle s'est effondrée dans le MFT. Existe-t-il un moyen pour que NTFS défragmente réellement le fichier d'index en le défragmentant en fonction du contenu du fichier? Toute API que vous connaissez? Contig.exe défragmenter uniquement le fichier physique.Comment réduire la taille du fichier d'index d'un dossier en NTFS?

Répondre

6

Je suppose que c'est une façon dont NTFS est comme presque tous les autres FS - aucun d'entre eux ne semble aimer les répertoires de rétrécissement.

Vous devez donc appliquer une méthode de haute technologie qui consiste à utiliser cette langue avancée, "BAT" :)

collapse.bat

REM Invoke as "collapse dirname" 
ren dirname dirname.old 
mkdir dirname 
cd dirname.old 
move * ../dirname/ 
cd .. 
rmdir dirname.old 
+4

c'est dégoûtant. mais sacrément intelligent :) – warren

2

Il est mou dans l'index, mais pas un écart. Je fais la distinction pour impliquer qu'il y a un espace techniquement gaspillé, mais ce n'est pas comme si NTFS devait analyser les 8 Mo pour énumérer/interroger/quel que soit l'index. Il sait où est la racine de son arbre, et il lui arrive d'avoir beaucoup de restes d'allocation supplémentaires. Probablement une réponse trop détaillée, étant donné que c'est inutile.

La fragmentation est probablement un problème distinct.

2

Jetez un oeil à la réponse acceptée à cette question: NTFS performance and large volumes of files and directories

L'auteur a fourni des informations au sujet de la fragmentation autrement sans papier d'index de fichiers, qu'il a reçu de Microsoft Tech Support lors d'un incident. La version courte est, DEFRAG ne défragmente pas l'index du dossier, seulement les fichiers dans ce dossier. Si vous souhaitez défragmenter l'index de fichier, vous devez utiliser l'outil CONTIG de SysInternals, qui est maintenant détenu et distribué (gratuitement) par Microsoft. La réponse donne un lien vers CONTIG.

Questions connexes