Class FileSystemUtils
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
- Since:
- 1.1
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final String
Deprecated.The path to dfprivate static final int
Deprecated.Operating system state flag for error.private static final FileSystemUtils
Deprecated.Singleton instance, used mainly for testing.private static final int
Deprecated.The operating system flag.private static final int
Deprecated.Operating system state flag for neither Unix nor Windows.private static final int
Deprecated.Operating system state flag for Posix flavour Unix.private static final int
Deprecated.Operating system state flag for Unix.private static final int
Deprecated.Operating system state flag for Windows. -
Constructor Summary
ConstructorsConstructorDescriptionDeprecated.Instances should NOT be constructed in standard programming. -
Method Summary
Modifier and TypeMethodDescriptionstatic long
Deprecated.Use freeSpaceKb(String) Deprecated from 1.3, may be removed in 2.0static long
Deprecated.As of 2.6 deprecated without replacement.static long
freeSpaceKb
(long timeout) Deprecated.As of 2.6 deprecated without replacement.static long
freeSpaceKb
(String path) Deprecated.As of 2.6 deprecated without replacement.static long
freeSpaceKb
(String path, long timeout) Deprecated.As of 2.6 deprecated without replacement.(package private) long
freeSpaceOS
(String path, int os, boolean kb, Duration timeout) Deprecated.Returns the free space on a drive or volume in a cross-platform manner.(package private) long
freeSpaceUnix
(String path, boolean kb, boolean posix, Duration timeout) Deprecated.Find free space on the *nix platform using the 'df' command.(package private) long
freeSpaceWindows
(String path, Duration timeout) Deprecated.Find free space on the Windows platform using the 'dir' command.(package private) Process
openProcess
(String[] cmdAttribs) Deprecated.Opens the process to the operating system.(package private) long
parseBytes
(String freeSpace, String path) Deprecated.Parses the bytes from a string.(package private) long
Deprecated.Parses the Windows dir response last lineperformCommand
(String[] cmdAttribs, int max, Duration timeout) Deprecated.Performs an OS command.
-
Field Details
-
INSTANCE
Deprecated.Singleton instance, used mainly for testing. -
INIT_PROBLEM
private static final int INIT_PROBLEMDeprecated.Operating system state flag for error.- See Also:
-
OTHER
private static final int OTHERDeprecated.Operating system state flag for neither Unix nor Windows.- See Also:
-
WINDOWS
private static final int WINDOWSDeprecated.Operating system state flag for Windows.- See Also:
-
UNIX
private static final int UNIXDeprecated.Operating system state flag for Unix.- See Also:
-
POSIX_UNIX
private static final int POSIX_UNIXDeprecated.Operating system state flag for Posix flavour Unix.- See Also:
-
OS
private static final int OSDeprecated.The operating system flag. -
DF
Deprecated.The path to df
-
-
Constructor Details
-
FileSystemUtils
public FileSystemUtils()Deprecated.Instances should NOT be constructed in standard programming.
-
-
Method Details
-
freeSpace
Deprecated.Use freeSpaceKb(String) Deprecated from 1.3, may be removed in 2.0Returns 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 offreeSpaceKb(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"); // *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 invalidIllegalStateException
- if an error occurred in initialisationIOException
- if an error occurs when finding the free space- Since:
- 1.1, enhanced OS support in 1.2 and 1.3
-
freeSpaceKb
Deprecated.As of 2.6 deprecated without replacement. Please useFileStore.getUsableSpace()
.Returns the free space on a drive or volume in kibibytes (1024 bytes) 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 invalidIllegalStateException
- if an error occurred in initialisationIOException
- if an error occurs when finding the free space- Since:
- 1.2, enhanced OS support in 1.3
-
freeSpaceKb
Deprecated.As of 2.6 deprecated without replacement. Please useFileStore.getUsableSpace()
.Returns the free space on a drive or volume in kibibytes (1024 bytes) 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 Unixtimeout
- The timeout amount in milliseconds or no timeout if the value is zero or less- Returns:
- the amount of free drive space on the drive or volume in kilobytes
- Throws:
IllegalArgumentException
- if the path is invalidIllegalStateException
- if an error occurred in initialisationIOException
- if an error occurs when finding the free space- Since:
- 2.0
-
freeSpaceKb
Deprecated.As of 2.6 deprecated without replacement. Please useFileStore.getUsableSpace()
.Returns the free space for the working directory in kibibytes (1024 bytes) by invoking the command line.Identical to:
freeSpaceKb(new File(".").getAbsolutePath())
- Returns:
- the amount of free drive space on the drive or volume in kilobytes
- Throws:
IllegalStateException
- if an error occurred in initialisationIOException
- if an error occurs when finding the free space- Since:
- 2.0
-
freeSpaceKb
Deprecated.As of 2.6 deprecated without replacement. Please useFileStore.getUsableSpace()
.Returns the free space for the working directory in kibibytes (1024 bytes) by invoking the command line.Identical to:
freeSpaceKb(new File(".").getAbsolutePath())
- Parameters:
timeout
- The timeout amount in milliseconds or no timeout if the value is zero or less- Returns:
- the amount of free drive space on the drive or volume in kilobytes
- Throws:
IllegalStateException
- if an error occurred in initialisationIOException
- if an error occurs when finding the free space- Since:
- 2.0
-
freeSpaceOS
Deprecated.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 Unixos
- the operating system codekb
- whether to normalize to kilobytestimeout
- The timeout amount in milliseconds or no timeout if the value is zero or less- Returns:
- the amount of free drive space on the drive or volume
- Throws:
IllegalArgumentException
- if the path is invalidIllegalStateException
- if an error occurred in initialisationIOException
- if an error occurs when finding the free space
-
freeSpaceWindows
Deprecated.Find free space on the Windows platform using the 'dir' command.- Parameters:
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 less- Returns:
- the amount of free drive space on the drive
- Throws:
IOException
- if an error occurs
-
parseDir
Deprecated.Parses the Windows dir response last line- Parameters:
line
- the line to parsepath
- the path that was sent- Returns:
- the number of bytes
- Throws:
IOException
- if an error occurs
-
freeSpaceUnix
Deprecated.Find free space on the *nix platform using the 'df' command.- Parameters:
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 less- Returns:
- the amount of free drive space on the volume
- Throws:
IOException
- if an error occurs
-
parseBytes
Deprecated.Parses the bytes from a string.- Parameters:
freeSpace
- the free space stringpath
- the path- Returns:
- the number of bytes
- Throws:
IOException
- if an error occurs
-
performCommand
Deprecated.Performs an OS command.- Parameters:
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 less- Returns:
- the lines returned by the command, converted to lower-case
- Throws:
IOException
- if an error occurs
-
openProcess
Deprecated.Opens the process to the operating system.- Parameters:
cmdAttribs
- the command line parameters- Returns:
- the process
- Throws:
IOException
- if an error occurs
-
FileStore
instead, e.g.Files.getFileStore(Paths.get("/home")).getUsableSpace()
or iterate overFileSystems.getDefault().getFileStores()