org.apache.commons.io

Class FileSystemUtils

public class FileSystemUtils extends Object

General File System utilities.

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

The current functions provided are:

Since: Commons IO 1.1

Version: $Id: FileSystemUtils.java 453889 2006-10-07 11:56:25Z scolebourne $

Author: Frank W. Zammetti Stephen Colebourne Thomas Ledoux James Urie Magnus Grimsell Thomas Ledoux

Field Summary
static intINIT_PROBLEM
Operating system state flag for error.
static FileSystemUtilsINSTANCE
Singleton instance, used mainly for testing.
static intOS
The operating system flag.
static intOTHER
Operating system state flag for neither Unix nor Windows.
static intPOSIX_UNIX
Operating system state flag for Posix flavour Unix.
static intUNIX
Operating system state flag for Unix.
static intWINDOWS
Operating system state flag for Windows.
Constructor Summary
FileSystemUtils()
Instances should NOT be constructed in standard programming.
Method Summary
static longfreeSpace(String path)
Returns the free space on a drive or volume by invoking the command line.
static longfreeSpaceKb(String path)
Returns the free space on a drive or volume in kilobytes by invoking the command line.
longfreeSpaceOS(String path, int os, boolean kb)
Returns the free space on a drive or volume in a cross-platform manner.
longfreeSpaceUnix(String path, boolean kb, boolean posix)
Find free space on the *nix platform using the 'df' command.
longfreeSpaceWindows(String path)
Find free space on the Windows platform using the 'dir' command.
ProcessopenProcess(String[] cmdAttribs)
Opens the process to the operating system.
longparseBytes(String freeSpace, String path)
Parses the bytes from a string.
longparseDir(String line, String path)
Parses the Windows dir response last line
ListperformCommand(String[] cmdAttribs, int max)
Performs the os command.

Field Detail

INIT_PROBLEM

private static final int INIT_PROBLEM
Operating system state flag for error.

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.

POSIX_UNIX

private static final int POSIX_UNIX
Operating system state flag for Posix flavour Unix.

UNIX

private static final int UNIX
Operating system state flag for Unix.

WINDOWS

private static final int WINDOWS
Operating system state flag for Windows.

Constructor Detail

FileSystemUtils

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

Method Detail

freeSpace

public static long freeSpace(String path)

Deprecated: Use freeSpaceKb(String) Deprecated from 1.3, may be removed in 2.0

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. As this is not very useful, this method is deprecated in favour of freeSpaceKb which returns a result in kilobytes.

Note that some OS's are NOT currently supported, including OS/390, OpenVMS and and SunOS 5. (SunOS is supported by freeSpaceKb.)

 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

Throws: IllegalArgumentException if the path is invalid IllegalStateException if an error occurred in initialisation IOException if an error occurs when finding the free space

Since: Commons IO 1.1, enhanced OS support in 1.2 and 1.3

freeSpaceKb

public static long freeSpaceKb(String path)
Returns the free space on a drive or volume in kilobytes by invoking the command line.
 FileSystemUtils.freeSpaceKb("C:");       // Windows
 FileSystemUtils.freeSpaceKb("/volume");  // *nix
 
The free space is calculated via the command line. It uses 'dir /-c' on Windows, 'df -kP' on AIX/HP-UX and 'df -k' on other Unix.

In order to work, you must be running Windows, or have a implementation of Unix df that supports GNU format when passed -k (or -kP). If you are going to rely on this code, please check that it works on your OS by running some simple tests to compare the command line with the output from this class. If your operating system isn't supported, please raise a JIRA call detailing the exact result from df -k and as much other detail as possible, thanks.

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

Throws: IllegalArgumentException if the path is invalid IllegalStateException if an error occurred in initialisation IOException if an error occurs when finding the free space

Since: Commons IO 1.2, enhanced OS support in 1.3

freeSpaceOS

long freeSpaceOS(String path, int os, boolean kb)
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

Throws: IllegalArgumentException if the path is invalid IllegalStateException if an error occurred in initialisation IOException if an error occurs when finding the free space

freeSpaceUnix

long freeSpaceUnix(String path, boolean kb, boolean posix)
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 posix whether to use the posix standard format flag

Returns: the amount of free drive space on the volume

Throws: IOException if an error occurs

freeSpaceWindows

long freeSpaceWindows(String path)
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

Throws: IOException if an error occurs

openProcess

Process openProcess(String[] cmdAttribs)
Opens the process to the operating system.

Parameters: cmdAttribs the command line parameters

Returns: the process

Throws: IOException if an error occurs

parseBytes

long parseBytes(String freeSpace, String path)
Parses the bytes from a string.

Parameters: freeSpace the free space string path the path

Returns: the number of bytes

Throws: IOException if an error occurs

parseDir

long parseDir(String line, String path)
Parses the Windows dir response last line

Parameters: line the line to parse path the path that was sent

Returns: the number of bytes

Throws: IOException if an error occurs

performCommand

List performCommand(String[] cmdAttribs, int max)
Performs the os command.

Parameters: cmdAttribs the command line parameters max The maximum limit for the lines returned

Returns: the parsed data

Throws: IOException if an error occurs

Copyright (c) 2002-2011 Apache Software Foundation