org.apache.commons.io
public class FileSystemUtils extends Object
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 $
Field Summary | |
---|---|
static int | INIT_PROBLEM Operating system state flag for error. |
static FileSystemUtils | INSTANCE Singleton instance, used mainly for testing. |
static int | OS The operating system flag. |
static int | OTHER Operating system state flag for neither Unix nor Windows. |
static int | POSIX_UNIX Operating system state flag for Posix flavour Unix. |
static int | UNIX Operating system state flag for Unix. |
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.
|
long | freeSpaceOS(String path, int os, boolean kb)
Returns the free space on a drive or volume in a cross-platform manner.
|
long | freeSpaceUnix(String path, boolean kb, boolean posix)
Find free space on the *nix platform using the 'df' command.
|
long | freeSpaceWindows(String path)
Find free space on the Windows platform using the 'dir' command.
|
Process | openProcess(String[] cmdAttribs)
Opens the process to the operating system.
|
long | parseBytes(String freeSpace, String path)
Parses the bytes from a string.
|
long | parseDir(String line, String path)
Parses the Windows dir response last line
|
List | performCommand(String[] cmdAttribs, int max)
Performs the os command.
|
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"); // *nixThe 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
FileSystemUtils.freeSpaceKb("C:"); // Windows FileSystemUtils.freeSpaceKb("/volume"); // *nixThe 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
FileSystemUtils.freeSpace("C:"); // Windows FileSystemUtils.freeSpace("/volume"); // *nixThe 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
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
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
Parameters: cmdAttribs the command line parameters
Returns: the process
Throws: IOException if an error occurs
Parameters: freeSpace the free space string path the path
Returns: the number of bytes
Throws: IOException if an error occurs
Parameters: line the line to parse path the path that was sent
Returns: the number of bytes
Throws: IOException if an error occurs
Parameters: cmdAttribs the command line parameters max The maximum limit for the lines returned
Returns: the parsed data
Throws: IOException if an error occurs