Pregunta

Quiero obtener el tamaño de una unidad (o la ruta UNC que apunta a una partición sería agradable, pero no es obligatorio), así como el espacio libre para dicha unidad (o ruta UNC). Esto no necesita trabajar multiplataforma; solo en Windows.

Sé que es fácil de hacer en Java 6, pero esa no es una opción; Estoy atascado con Java 5.

Puedo obtener el espacio libre disponible haciendo:

  

cmd.exe / c Z: \ / -c

     

o

     

cmd.exe / c \\ server \ share / -c

y simplemente analizando los bytes resultantes libres. Sin embargo, parece que no puedo encontrar una manera de obtener el tamaño total de la unidad.

¿Alguna sugerencia?

¿Fue útil?

Solución

Una forma de hacerlo sería usar fsutil en la línea de comandos. Devuelve algo como esto:

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

Multiplica tu número de sectores por los bytes por sector para obtener tu tamaño.

Otros consejos

Podrías hacer esto fácilmente usando una llamada JNI si te sientes cómodo con eso ...

Si desea una biblioteca preempaquetada que puede usar con JDK1.5, consulte Apache FileSystemUtils

Esto simplemente envuelve la llamada al sistema que usted describe, pero al menos es una biblioteca estándar que puede usar hasta que pueda usar 1.6.

Puede usar la biblioteca SIGAR , que le brinda acceso nativo en muchas plataformas .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top