Javaの昔は、パーティション上の空きディスク容量を判断する方法が欠けています。しかし、これはJDK 1.6がリリースされて以来変更されています。

getTotalSpace()



getUsableSpace()



getFreeSpace()

はjava.io.Fileにバンドルされ、パーティションやディスクスペースの詳細を取得します。


package com.mkyong;

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");
    }
}

出力

 === 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

  • 注意

    getFreeSpace()



    getUsableSpace()

    メソッドはどちらも、指定されたパーティションの空きディスク容量と同じです。しかし、実際の違いは、Javaの文書でも、明確ではありません。間に何が違うのか分かっているか教えてください。

リファレンス


http://download.oracle.com/javase/6/docs/api/java/io/File.html