org.apache.commons.io
Class FileSystemUtils
java.lang.Object
org.apache.commons.io.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:
- Get the free space on a drive
$Id: FileSystemUtils.java 453889 2006-10-07 11:56:25Z scolebourne $- Frank W. Zammetti
- Stephen Colebourne
- Thomas Ledoux
- James Urie
- Magnus Grimsell
- Thomas Ledoux
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 | POSIX_UNIX - Operating system state flag for Posix flavour Unix.
|
private static int | UNIX - Operating system state flag for Unix.
|
private static int | WINDOWS - Operating system state flag for Windows.
|
FileSystemUtils() - Instances should NOT be constructed in standard programming.
|
static long | freeSpace(String path) - Use freeSpaceKb(String)
Deprecated from 1.3, may be removed in 2.0
|
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, boolean posix) - 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) Process | openProcess(String[] cmdAttribs) - Opens the process to the operating system.
|
(package private) long | parseBytes(String freeSpace, String path) - Parses the bytes from a string.
|
(package private) long | parseDir(String line, String path) - Parses the Windows dir response last line
|
(package private) List | performCommand(String[] cmdAttribs, int max) - Performs the os command.
|
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.
FileSystemUtils
public FileSystemUtils()
Instances should NOT be constructed in standard programming.
freeSpace
public static long freeSpace(String path)
throws IOException
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(String)
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.
path
- the path to get free space for, not null, not empty on Unix
- the amount of free drive space on the drive or volume
- Commons IO 1.1, enhanced OS support in 1.2 and 1.3
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.
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.
path
- the path to get free space for, not null, not empty on Unix
- the amount of free drive space on the drive or volume in kilobytes
- Commons IO 1.2, enhanced OS support in 1.3
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.
path
- the path to get free space for, not null, not empty on Unixos
- the operating system codekb
- whether to normalize to kilobytes
- the amount of free drive space on the drive or volume
freeSpaceUnix
(package private) long freeSpaceUnix(String path,
boolean kb,
boolean posix)
throws IOException
Find free space on the *nix platform using the 'df' command.
path
- the path to get free space forkb
- whether to normalize to kilobytesposix
- whether to use the posix standard format flag
- 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.
path
- the path to get free space for, including the colon
- the amount of free drive space on the drive
openProcess
(package private) Process openProcess(String[] cmdAttribs)
throws IOException
Opens the process to the operating system.
cmdAttribs
- the command line parameters
parseBytes
(package private) long parseBytes(String freeSpace,
String path)
throws IOException
Parses the bytes from a string.
freeSpace
- the free space stringpath
- the path
parseDir
(package private) long parseDir(String line,
String path)
throws IOException
Parses the Windows dir response last line
line
- the line to parsepath
- the path that was sent
performCommand
(package private) List performCommand(String[] cmdAttribs,
int max)
throws IOException
Performs the os command.
cmdAttribs
- the command line parametersmax
- The maximum limit for the lines returned
Copyright (c) 2002-2009 Apache Software Foundation