문제

드라이브 크기 (또는 파티션을 가리키는 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을 사용할 수있을 때까지 사용할 수있는 표준 라이브러리입니다.

당신은 사용할 수 있습니다 시가 많은 플랫폼에서 기본 액세스 권한을 제공하는 라이브러리.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top