Question

Je souhaite obtenir la taille d'un lecteur (ou un chemin UNC pointant sur une partition serait bien, mais pas obligatoire), ainsi que de l'espace libre pour ledit lecteur (ou chemin UNC). Cela n'a pas besoin de travailler sur plusieurs plates-formes; uniquement sous Windows.

Je sais que c'est facile à faire avec Java 6, mais ce n'est pas une option. Je suis coincé avec Java 5.

Je peux obtenir l'espace disponible en faisant:

  

cmd.exe / c Z: \ / -c

     

ou

     

cmd.exe / c \\ serveur \ partage / -c

et juste analyser les octets résultants gratuitement. Cependant, je n'arrive pas à trouver le moyen d'obtenir la taille totale du lecteur.

Des suggestions?

Était-ce utile?

La solution

Une solution consiste à utiliser fsutil sur la ligne de commande. Il retourne quelque chose comme ceci:

D:\>fsutil fsinfo ntfsinfo c:
NTFS Volume Serial Number :       0xd49cf9cf9cf9ac5c
Version :                         3.1
Number Sectors :                  0x0000000004a813ff
Total Clusters :                  0x000000000095027f
Free Clusters  :                  0x00000000002392f5
Total Reserved :                  0x0000000000000490
Bytes Per Sector  :               512
Bytes Per Cluster :               4096
Bytes Per FileRecord Segment    : 1024
Clusters Per FileRecord Segment : 0
Mft Valid Data Length :           0x000000000e70c000
Mft Start Lcn  :                  0x00000000000c0000
Mft2 Start Lcn :                  0x0000000000000010
Mft Zone Start :                  0x0000000000624ea0
Mft Zone End   :                  0x0000000000643da0

Multipliez votre nombre de secteurs par le nombre d'octets par secteur pour obtenir votre taille.

Autres conseils

Vous pouvez le faire assez facilement en utilisant un appel JNI si vous êtes à l'aise avec cela ...

Si vous voulez une bibliothèque pré-packagée que vous pouvez utiliser avec JDK1.5, jetez un œil à la Apache FileSystemUtils

Ceci enveloppe simplement l'appel système que vous décrivez, mais au moins c'est une bibliothèque standard que vous pouvez utiliser jusqu'à ce que vous puissiez utiliser la version 1.6.

Vous pouvez utiliser la bibliothèque SIGAR , qui vous donne un accès natif sur de nombreuses plateformes. .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top