Вопрос

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

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

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

cmd.exe /c Z:\ /-c

или

cmd.exe /c \\сервер\доля /-c

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

Какие-либо предложения?

Это было полезно?

Решение

Один из способов сделать это — использовать 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

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

Другие советы

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top