문제
드라이브 크기 (또는 파티션을 가리키는 UNC 경로는 좋지만 필요하지 않을 것입니다)와 해당 드라이브 (또는 UNC 경로)를위한 여유 공간을 얻고 싶습니다. 이것은 크로스 플랫폼에서 작업 할 필요가 없습니다. 창에서만.
나는 Java 6에서 쉽게 할 수 있다는 것을 알고 있지만 그것은 선택 사항이 아닙니다. 나는 Java 5에 붙어 있습니다.
다음을 통해 여유 공간을 사용할 수 있습니다.
cmd.exe /c z : /-c
또는
cmd.exe /c server share /-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을 사용할 수있을 때까지 사용할 수있는 표준 라이브러리입니다.
당신은 사용할 수 있습니다 시가 많은 플랫폼에서 기본 액세스 권한을 제공하는 라이브러리.
제휴하지 않습니다 StackOverflow