Получить размер диска в Java 5 - PullRequest
0 голосов
/ 30 октября 2008

Я хочу получить размер диска (или путь UNC, указывающий на раздел, было бы неплохо, но не обязательно), а также свободное место для указанного диска (или путь UNC). Это не должно работать кроссплатформенно; только в Windows.

Я знаю, что это легко сделать в Java 6, но это не вариант; Я застрял с Java 5.

Я могу получить свободное место, выполнив:

cmd.exe / c Z: \ / -c

или

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

и просто разбор полученных байтов. Однако я не могу найти способ получить общий размер диска.

Есть предложения?

Ответы [ 3 ]

3 голосов
/ 30 октября 2008

Один из способов сделать это - использовать fsutil в командной строке. Возвращает что-то вроде этого:

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

Умножьте количество секторов на число байтов на сектор, чтобы получить ваш размер.

1 голос
/ 02 ноября 2008

Вы можете сделать это довольно легко, используя вызов JNI, если вам это удобно ...

Если вам нужна готовая библиотека, которую вы можете использовать с JDK1.5, взгляните на Apache FileSystemUtils

Это просто оборачивает системный вызов, который вы описываете, но по крайней мере это стандартная библиотека, которую вы можете использовать, пока не сможете использовать 1.6.

0 голосов
/ 13 декабря 2008

Вы можете использовать библиотеку SIGAR , которая предоставляет вам собственный доступ на многих платформах.

...