org.apache.commons.io

Class FileSystemUtils


public class FileSystemUtils
extends java.lang.Object

General File System utilities.

This class provides static utility methods for general file system functions not provided via the JDK File class.

The current functions provided are:

Version:
$Id: FileSystemUtils.java 385680 2006-03-13 22:27:09Z scolebourne $
Authors:
Frank W. Zammetti
Stephen Colebourne
Thomas Ledoux
Since:
Commons IO 1.1

Field Summary

private static int
INIT_PROBLEM
Operating system state flag for error.
private static FileSystemUtils
INSTANCE
Singleton instance, used mainly for testing.
private static int
OS
The operating system flag.
private static int
OTHER
Operating system state flag for neither Unix nor Windows.
private static int
UNIX
Operating system state flag for Unix.
private static int
WINDOWS
Operating system state flag for Windows.

Constructor Summary

FileSystemUtils()
Instances should NOT be constructed in standard programming.

Method Summary

static long
freeSpace(String path)
Returns the free space on a drive or volume by invoking the command line.
static long
freeSpaceKb(String path)
Returns the free space on a drive or volume in kilobytes by invoking the command line.
(package private) long
freeSpaceOS(String path, int os, boolean kb)
Returns the free space on a drive or volume in a cross-platform manner.
(package private) long
freeSpaceUnix(String path, boolean kb)
Find free space on the *nix platform using the 'df' command.
(package private) long
freeSpaceWindows(String path)
Find free space on the Windows platform using the 'dir' command.
(package private) BufferedReader
openProcessStream(String[] params)
Opens the stream to be operating system.

Field Details

INIT_PROBLEM

private static final int INIT_PROBLEM
Operating system state flag for error.
Field Value:
-1

INSTANCE

private static final FileSystemUtils INSTANCE
Singleton instance, used mainly for testing.

OS

private static final int OS
The operating system flag.

OTHER

private static final int OTHER
Operating system state flag for neither Unix nor Windows.
Field Value:
0

UNIX

private static final int UNIX
Operating system state flag for Unix.
Field Value:
2

WINDOWS

private static final int WINDOWS
Operating system state flag for Windows.
Field Value:
1

Constructor Details

FileSystemUtils

public FileSystemUtils()
Instances should NOT be constructed in standard programming.

Method Details

freeSpace

public static long freeSpace(String path)
            throws IOException
Returns the free space on a drive or volume by invoking the command line. This method does not normalize the result, and typically returns bytes on Windows, 512 byte units on OS X and kilobytes on Unix.

See also freeSpaceKb(String) for a better implementation which normalizes to kilobytes.

Note that some OS's are NOT currently supported, including OS/390.

 FileSystemUtils.freeSpace("C:");       // Windows
 FileSystemUtils.freeSpace("/volume");  // *nix
 
The free space is calculated via the command line. It uses 'dir /-c' on Windows and 'df' on *nix.
Parameters:
path - the path to get free space for, not null, not empty on Unix
Returns:
the amount of free drive space on the drive or volume

freeSpaceKb

public static long freeSpaceKb(String path)
            throws IOException
Returns the free space on a drive or volume in kilobytes by invoking the command line. Note that some OS's are NOT currently supported, including OS/390.
 FileSystemUtils.freeSpaceKb("C:");       // Windows
 FileSystemUtils.freeSpaceKb("/volume");  // *nix
 
The free space is calculated via the command line. It uses 'dir /-c' on Windows and 'df -k' on *nix.
Parameters:
path - the path to get free space for, not null, not empty on Unix
Returns:
the amount of free drive space on the drive or volume in kilobytes
Since:
Commons IO 1.2

freeSpaceOS

(package private)  long freeSpaceOS(String path,
                                    int os,
                                    boolean kb)
            throws IOException
Returns the free space on a drive or volume in a cross-platform manner. Note that some OS's are NOT currently supported, including OS/390.
 FileSystemUtils.freeSpace("C:");  // Windows
 FileSystemUtils.freeSpace("/volume");  // *nix
 
The free space is calculated via the command line. It uses 'dir /-c' on Windows and 'df' on *nix.
Parameters:
path - the path to get free space for, not null, not empty on Unix
os - the operating system code
kb - whether to normalize to kilobytes
Returns:
the amount of free drive space on the drive or volume

freeSpaceUnix

(package private)  long freeSpaceUnix(String path,
                                      boolean kb)
            throws IOException
Find free space on the *nix platform using the 'df' command.
Parameters:
path - the path to get free space for
kb - whether to normalize to kilobytes
Returns:
the amount of free drive space on the volume

freeSpaceWindows

(package private)  long freeSpaceWindows(String path)
            throws IOException
Find free space on the Windows platform using the 'dir' command.
Parameters:
path - the path to get free space for, including the colon
Returns:
the amount of free drive space on the drive

openProcessStream

(package private)  BufferedReader openProcessStream(String[] params)
            throws IOException
Opens the stream to be operating system.
Parameters:
params - the command parameters
Returns:
a reader