Question Nombre total de fichiers sur un volume NTFS?


je cherche un vite façon de compter le nombre total de fichiers - et de répertoires - sur tout volume NTFS. (De manière ad hoc, c’est-à-dire, à condition qu’il y ait une case quelconque, pas un volume spécialement préparé.)

Note: Ceci est ne pas sur les fichiers par répertoire, juste la quantité totale de fichiers sur le volume.

Actuellement, la seule façon dont je sais est d'ouvrir le dossier racine d'un lecteur dans l'Explorateur Windows, sélectionnez tous les éléments, cliquez avec le bouton droit pour choisir Propriétés, puis attendez (et attendez) que l'explorateur ait compté tous les éléments.

Y a-t-il un moyen meilleur / plus rapide?


6
2018-04-20 07:35


origine




Réponses:


À l'invite DOS, tapez la commande suivante:

  • Dir \ / s / a / w

(Le commutateur "/ s" permet une recherche récursive sur tous les sous-répertoires {avec la plupart des utilitaires Unix, il s'agit généralement du commutateur "-R"}, le commutateur "/ a" compte tous les fichiers indépendamment des attributs, et "/ w "affiche plusieurs entrées sur une seule ligne pour que le rapport se termine un peu plus rapidement. Changez" \ "pour le chemin souhaité à partir duquel vous souhaitez commencer; pour une lettre de lecteur différente, telle que le lecteur D: changez-la en" D : \ "pour rechercher ce lecteur.)

Une fois terminé, vous serez renvoyé à l'invite, puis les deux dernières lignes de sortie afficheront le nombre total de fichiers et le nombre total de répertoires. Si vous recherchez le nombre total d'entrées de noms de fichiers, ajoutez simplement ces deux nombres, sinon vous n'aurez besoin que du nombre total de fichiers.


7
2018-04-20 07:43



Merci! Cela a très bien fonctionné et semble beaucoup mieux que la boîte de dialogue de l'explorateur feuilleté. En outre, il semblait assez rapide (assez). - Martin
@Martin: Un outil que je trouve particulièrement utile (et un gain de temps majeur pour l’administration du système de fichiers), que vous soupçonnerez probablement également, est le FAR Manager gratuit et open source, fortement inspiré par Norton Commander pour DOS. Il s'agit d'une application Windows native 32 bits / 64 bits qui utilise le mode texte (pas de graphiques) et comporte des fonctionnalités qui compteront également les fichiers et répertoires (appuyez sur CTRL-Q pour compter les totaux des fichiers en surbrillance / sélectionnés / répertoires): farmanager.com - Randolf Richardson
@Randolf: Impressionnant! :-D Souvenirs de "meilleurs" jours. Je vais devoir essayer avec PsExec! - Martin


Si vous voulez juste une limite supérieure (approximation):

Tapez fsutil fsinfo ntfsinfo C: dans l'invite de commande, lisez le Mft Valid Data Length valeur, et diviser par 1024. Ce nombre pourrait être beaucoup trop grand, mais il ne peut pas être trop petit.

Si vous avez besoin d'une valeur exacte, il existe des moyens plus rapides, mais vous devez programmer quelque chose (je ne connais aucun programme qui le fait précisément) ... vous devez lire le fichier $ MFT et analyser c'est à la main, puis déterminez celles qui sont des entrées de fichier et celles qui ne le sont pas ... c'est beaucoup plus rapide que l'approche "descendante" de Windows (parce que construire la hiérarchie de bas en haut n'utilise que la MFT et rien d'autre) , mais ce n'est pas facile.

Si vous êtes un programmeur mais que vous voulez un moyen moins pénible (mais plus lent), vous pouvez aussi simplement écrire un programme qui appelle NtQueryDirectoryFile parcourir les dossiers au lieu du dossier par défaut FindFirstFile/FindNextFile fonctions ... il peut être beaucoup plus rapide mais un peu plus délicat.


Sachez simplement que la notion même de "fichier" est en réalité assez délicate. Il est tout à fait possible (et Windows le fait même par défaut) d’avoir plusieurs liens vers le même fichier, et les deux sont aussi "réels" que tout autre fichier ... comptez-vous une ou deux fois?

Ou vous pouvez avoir des jonctions ou des liens symboliques qui indiquent d'autres endroits ... devraient-ils être comptés ou non?

Il ne s’agit pas d’un processus clair comme cela pourrait paraître au premier abord, alors soyez conscient de cela.

J'espère que ça a aidé ..


modifier

Tu pourrais courir

 robocopy /L /E C:\ C:\Temp > "%Temp%\Temp.log"

puis inspectez la statistique "Fichiers" affichée. : P


6
2018-04-20 07:57



Re "notion d'un \" fichier \ "": techniquement, les répertoires sont aussi des fichiers. - grawity
Je crois avec limitations du système de fichiers, ceci est plus valable que la réponse actuellement la plus élevée, car elle est directement interfacée avec le sous-système du système de fichiers, et pas seulement avec les résultats présentés. dir. Quelqu'un d'autre a une opinion? Aussi, n’est-il pas préférable de dire: (Mft Valid Data Length)/(Bytes per FileRecord segment)? - mbrownnyc
Il semble que la longueur de données valide doit être considérée comme ... In NTFS, there are two important concepts of file length: the end-of-file (EOF) marker and the Valid Data Length (VDL). The EOF indicates the actual length of the file. The VDL identifies the length of valid data on disk. Any reads between VDL and EOF automatically return 0 in order to preserve the C2 object reuse requirement. (la source) - mbrownnyc
Si EOF Les marqueurs marquent la fin du fichier, la taille de la VDL doit être inférieure à la taille du fichier. Mais cela ne s'aligne pas du tout sur le dir méthode marquée comme la réponse (dans un test, je vois une différence de 1573080 entre les deux méthodes, avec (Mft Valid Data Length)/(Bytes per FileRecord segment) être le plus élevé des deux). Comme dans, si nous devions considérer que la longueur totale des données sur un disque est supérieure à Mft Valid Data Length, alors ce nombre serait encore plus grand et beaucoup moins représentatif du nombre réel de fichiers. - mbrownnyc


La réponse simple est: Télécharger Tout. Cela compte pour vous, super rapide. En outre, ~ recherche en temps réel pour vous. Il est gratuit et ne contient aucune crapola supplémentaire.


3
2018-04-20 08:02