- - PR -
選択ディレクトリの容量表示方法が分かりません。。。
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-09-03 21:05
残念ながら来年リリース予定のJava SE 6でFileクラスに追加される予定です。 現時点での実現手段は、JNI APIを用いてWindowsのネイティブ・コードで ディスク容量を取得することになります。 WindowsのAPIだと、GetDiskFreeSpaceExW というシステムコールがあります。 | ||||
|
投稿日時: 2005-09-03 22:01
ToGoさんへ
ご返信ありがとうございます。 貴重な情報、ありがとうございます。 現時点のJavaでは、無理なんですね。。。 「外部コマンド」や「GetDiskFreeSpaceExW」も 今のJavaでは無理ですよね。 う〜ん、困った・・・でも、無理なものは無理。 貴重な情報、本当にありがとうございました! | ||||
|
投稿日時: 2005-09-03 22:27
Javaには、"Java Native Interface (JNI)"と呼ぶ、C言語で書かれたライブラリ 呼び出す仕組みが標準で備わっています。したがって、今回の場合、Win32 APIの GetDiskFreeSpaceExW関数を呼び出してディスク容量を取得するC言語のライブラリを、 JNIの規定に従って作成し、これをJava側から呼び出すことで実現する方法が考えられ ます。 JNIの仕組みとC言語でのライブラリの作り方については、様々な書籍なりWebなりを 調査すれば情報はそれなりにあるかと思います。 JNIの敷居が高ければ、外部プロセスでWindowsのコマンドプロンプト上で"dir c:"と いったコマンドを実行し、実行結果の文字列から空き容量の部分を切り出すという方法 もあります。dirコマンドは最後に空きディスク容量をメッセージに表示します。 J2SE 5.0では、java.lang.ProcessBuilderクラスを使います。1.4までのバージョンでは java.lang.Runtimeクラスのexecメソッドを使いますが、ちょっと面倒だったかと思い ます。 |