Javaで空きディスク領域を取得する方法
Javaの昔は、パーティションの空きディスク領域を特定する方法がありませんでした。 ただし、これはJDK 1.6のリリース以降変更されており、パーティションまたはディスクスペースの詳細を取得するために、いくつかの新しいメソッド(getTotalSpace()、getUsableSpace()、およびgetFreeSpace())がjava.io.Fileにバンドルされています。
例
package com.example;
import java.io.File;
public class DiskSpaceDetail
{
public static void main(String[] args)
{
File file = new File("c:");
long totalSpace = file.getTotalSpace(); //total disk space in bytes.
long usableSpace = file.getUsableSpace(); ///unallocated / free disk space in bytes.
long freeSpace = file.getFreeSpace(); //unallocated / free disk space in bytes.
System.out.println(" === Partition Detail ===");
System.out.println(" === bytes ===");
System.out.println("Total size : " + totalSpace + " bytes");
System.out.println("Space free : " + usableSpace + " bytes");
System.out.println("Space free : " + freeSpace + " bytes");
System.out.println(" === mega bytes ===");
System.out.println("Total size : " + totalSpace /1024 /1024 + " mb");
System.out.println("Space free : " + usableSpace /1024 /1024 + " mb");
System.out.println("Space free : " + freeSpace /1024 /1024 + " mb");
}
}
出力
ディスクスペースの詳細をc:パーティションに表示します。
=== Partition Detail === === bytes === Total size : 52428795904 bytes Space free : 33677811712 bytes Space free : 33677811712 bytes === mega bytes === Total size : 49999 mb Space free : 32117 mb Space free : 32117 mb
Note
getFreeSpace()メソッドとgetUsableSpace()メソッドはどちらも、指定されたパーティションの同じ合計空きディスク容量を返します。 しかし、実際の違いは、java docでも明らかではありません。 両者の違いを知っているなら教えてください。