0

ドライブのサイズ (またはパーティションを指す UNC パスは適切ですが、必須ではありません) と、そのドライブ (または UNC パス) の空き容量を取得したいと考えています。これはクロス プラットフォームで動作する必要はありません。Windows のみ。

Java 6 で簡単に実行できることはわかっていますが、それはオプションではありません。私はJava 5で立ち往生しています。

次のようにして、使用可能な空き容量を取得できます。

cmd.exe /c Z:\ /-c

また

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

結果のバイトを無料で解析するだけです。ただし、ドライブの合計サイズを取得する方法が見つからないようです。

助言がありますか?

4

3 に答える 3

3

これを行う1つの方法は、コマンドラインで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

セクター数にセクターあたりのバイト数を掛けて、サイズを取得します。

于 2008-10-30T19:34:21.513 に答える
1

それに慣れている場合は、JNI呼び出しを使用してこれを非常に簡単に行うことができます...

JDK1.5 で使用できる事前にパッケージ化されたライブラリが必要な場合は、Apache FileSystemUtilsを参照してください。

これは、記述したシステム コールをラップするだけですが、少なくとも 1.6 を使用できるようになるまで使用できる標準ライブラリです。

于 2008-11-02T02:58:16.683 に答える
0

多くのプラットフォームでネイティブ アクセスを提供するSIGARライブラリを使用できます。

于 2008-12-13T09:01:35.857 に答える