Javaで空きディスク容量を取得する方法
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の文書でも、明確ではありません。間に何が違うのか分かっているか教えてください。