public class FileSystemUtils
extends java.lang.Object
This class provides static utility methods for general file system
functions not provided via the JDK File
class.
The current functions provided are:
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
DF
The path to df
|
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.
|
Constructor and Description |
---|
FileSystemUtils()
Instances should NOT be constructed in standard programming.
|
Modifier and Type | Method and Description |
---|---|
static long |
freeSpace(java.lang.String path)
Deprecated.
Use freeSpaceKb(String)
Deprecated from 1.3, may be removed in 2.0
|
static long |
freeSpaceKb()
Returns the disk size of the volume which holds the working directory.
|
static long |
freeSpaceKb(long timeout)
Returns the disk size of the volume which holds the working directory.
|
static long |
freeSpaceKb(java.lang.String path)
Returns the free space on a drive or volume in kilobytes by invoking
the command line.
|
static long |
freeSpaceKb(java.lang.String path,
long timeout)
Returns the free space on a drive or volume in kilobytes by invoking
the command line.
|
(package private) long |
freeSpaceOS(java.lang.String path,
int os,
boolean kb,
long timeout)
Returns the free space on a drive or volume in a cross-platform manner.
|
(package private) long |
freeSpaceUnix(java.lang.String path,
boolean kb,
boolean posix,
long timeout)
Find free space on the *nix platform using the 'df' command.
|
(package private) long |
freeSpaceWindows(java.lang.String path,
long timeout)
Find free space on the Windows platform using the 'dir' command.
|
(package private) java.lang.Process |
openProcess(java.lang.String[] cmdAttribs)
Opens the process to the operating system.
|
(package private) long |
parseBytes(java.lang.String freeSpace,
java.lang.String path)
Parses the bytes from a string.
|
(package private) long |
parseDir(java.lang.String line,
java.lang.String path)
Parses the Windows dir response last line
|
(package private) java.util.List<java.lang.String> |
performCommand(java.lang.String[] cmdAttribs,
int max,
long timeout)
Performs the os command.
|
private static final FileSystemUtils INSTANCE
private static final int INIT_PROBLEM
private static final int OTHER
private static final int WINDOWS
private static final int UNIX
private static final int POSIX_UNIX
private static final int OS
private static final java.lang.String DF
public FileSystemUtils()
@Deprecated public static long freeSpace(java.lang.String path) throws java.io.IOException
freeSpaceKb(String)
which returns a result in kilobytes.
Note that some OS's are NOT currently supported, including OS/390, OpenVMS.
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.
path
- the path to get free space for, not null, not empty on Unixjava.lang.IllegalArgumentException
- if the path is invalidjava.lang.IllegalStateException
- if an error occurred in initialisationjava.io.IOException
- if an error occurs when finding the free spacepublic static long freeSpaceKb(java.lang.String path) throws java.io.IOException
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.
path
- the path to get free space for, not null, not empty on Unixjava.lang.IllegalArgumentException
- if the path is invalidjava.lang.IllegalStateException
- if an error occurred in initialisationjava.io.IOException
- if an error occurs when finding the free spacepublic static long freeSpaceKb(java.lang.String path, long timeout) throws java.io.IOException
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.
path
- the path to get free space for, not null, not empty on Unixtimeout
- The timeout amount in milliseconds or no timeout if the value
is zero or lessjava.lang.IllegalArgumentException
- if the path is invalidjava.lang.IllegalStateException
- if an error occurred in initialisationjava.io.IOException
- if an error occurs when finding the free spacepublic static long freeSpaceKb() throws java.io.IOException
Identical to:
freeSpaceKb(new File(".").getAbsolutePath())
java.lang.IllegalStateException
- if an error occurred in initialisationjava.io.IOException
- if an error occurs when finding the free spacepublic static long freeSpaceKb(long timeout) throws java.io.IOException
Identical to:
freeSpaceKb(new File(".").getAbsolutePath())
timeout
- The timeout amount in milliseconds or no timeout if the value
is zero or lessjava.lang.IllegalStateException
- if an error occurred in initialisationjava.io.IOException
- if an error occurs when finding the free spacelong freeSpaceOS(java.lang.String path, int os, boolean kb, long timeout) throws java.io.IOException
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.
path
- the path to get free space for, not null, not empty on Unixos
- the operating system codekb
- whether to normalize to kilobytestimeout
- The timeout amount in milliseconds or no timeout if the value
is zero or lessjava.lang.IllegalArgumentException
- if the path is invalidjava.lang.IllegalStateException
- if an error occurred in initialisationjava.io.IOException
- if an error occurs when finding the free spacelong freeSpaceWindows(java.lang.String path, long timeout) throws java.io.IOException
path
- the path to get free space for, including the colontimeout
- The timeout amount in milliseconds or no timeout if the value
is zero or lessjava.io.IOException
- if an error occurslong parseDir(java.lang.String line, java.lang.String path) throws java.io.IOException
line
- the line to parsepath
- the path that was sentjava.io.IOException
- if an error occurslong freeSpaceUnix(java.lang.String path, boolean kb, boolean posix, long timeout) throws java.io.IOException
path
- the path to get free space forkb
- whether to normalize to kilobytesposix
- whether to use the POSIX standard format flagtimeout
- The timeout amount in milliseconds or no timeout if the value
is zero or lessjava.io.IOException
- if an error occurslong parseBytes(java.lang.String freeSpace, java.lang.String path) throws java.io.IOException
freeSpace
- the free space stringpath
- the pathjava.io.IOException
- if an error occursjava.util.List<java.lang.String> performCommand(java.lang.String[] cmdAttribs, int max, long timeout) throws java.io.IOException
cmdAttribs
- the command line parametersmax
- The maximum limit for the lines returnedtimeout
- The timeout amount in milliseconds or no timeout if the value
is zero or lessjava.io.IOException
- if an error occursjava.lang.Process openProcess(java.lang.String[] cmdAttribs) throws java.io.IOException
cmdAttribs
- the command line parametersjava.io.IOException
- if an error occurs