All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jamonapi.jmx.FreeDiskSpace Maven / Gradle / Ivy

There is a newer version: 2.82
Show newest version
package com.jamonapi.jmx;

import java.io.File;

/**
 * Give free disk space. On my mac getFreeSpace() roughly maps to 'Avail', and
 * getTotalSpace() maps to 'Size'.  I used the definition of 1000 as that seems to be the more standard
 * definition for drive sizes.  Note units for the methods in this calls are in GB.
 *
 * df -H
 *   Filesystem      Size   Used  Avail Capacity  iused    ifree %iused  Mounted on
 *  /dev/disk1      499G   210G   289G    43% 51291254 70507400   42%
 */
 class FreeDiskSpace {
    static final double GB = 1000L*1000L*1000L;
    private File dir;

    /**
     * Defaults to root directory.
     */
    public FreeDiskSpace() {
        this(new File(File.separator));
    }

    /**
     *
     * @param dir absolute directory location to check diskspace for
     */
    public FreeDiskSpace(File dir) {
        this.dir = dir;
    }

    /**
     *
     * @return free space in GB
     */
    public double getFreeSpace() {
        return dir.getFreeSpace()/GB;
    }

    /**
     *
     * @return freeSpace/totalSpace
     */
    public double getFreeSpacePercent() {
        return getFreeSpace()/getTotalSpace();
    }

    /**
     *
     * @return total space in GB
     */
    public double getTotalSpace() {
        return dir.getTotalSpace()/GB;
    }

    public String getAbsolutePath() {
        return dir.getAbsolutePath();
    }

    public String toString() {
        return "path="+getAbsolutePath()+", freeSpace="+getFreeSpace()+" GB, totalSpace="+getTotalSpace()+" GB, freeSpacePercent="+getFreeSpacePercent();
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy