Class FileSystemUtils

java.lang.Object
org.apache.commons.io.FileSystemUtils

@Deprecated public class FileSystemUtils extends Object
Deprecated.
As of 2.6 deprecated without replacement. Use equivalent methods in FileStore instead, e.g. Files.getFileStore(Paths.get("/home")).getUsableSpace() or iterate over FileSystems.getDefault().getFileStores()
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
Since:
1.1
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final String
    Deprecated.
    The path to df
    private 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

    Constructors
    Constructor
    Description
    Deprecated.
    Instances should NOT be constructed in standard programming.
  • Method Summary

    Modifier and Type
    Method
    Description
    static long
    Deprecated.
    Use freeSpaceKb(String) Deprecated from 1.3, may be removed in 2.0
    static long
    Deprecated.
    As of 2.6 deprecated without replacement.
    static long
    freeSpaceKb(long timeout)
    Deprecated.
    As of 2.6 deprecated without replacement.
    static long
    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, long 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, long timeout)
    Deprecated.
    Find free space on the *nix platform using the 'df' command.
    (package private) long
    freeSpaceWindows(String path, long 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
    parseDir(String line, String path)
    Deprecated.
    Parses the Windows dir response last line
    (package private) List<String>
    performCommand(String[] cmdAttribs, int max, long timeout)
    Deprecated.
    Performs the os command.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • INSTANCE

      private static final FileSystemUtils INSTANCE
      Deprecated.
      Singleton instance, used mainly for testing.
    • INIT_PROBLEM

      private static final int INIT_PROBLEM
      Deprecated.
      Operating system state flag for error.
      See Also:
    • OTHER

      private static final int OTHER
      Deprecated.
      Operating system state flag for neither Unix nor Windows.
      See Also:
    • WINDOWS

      private static final int WINDOWS
      Deprecated.
      Operating system state flag for Windows.
      See Also:
    • UNIX

      private static final int UNIX
      Deprecated.
      Operating system state flag for Unix.
      See Also:
    • POSIX_UNIX

      private static final int POSIX_UNIX
      Deprecated.
      Operating system state flag for Posix flavour Unix.
      See Also:
    • OS

      private static final int OS
      Deprecated.
      The operating system flag.
    • DF

      private static final String DF
      Deprecated.
      The path to df
  • Constructor Details

    • FileSystemUtils

      public FileSystemUtils()
      Deprecated.
      Instances should NOT be constructed in standard programming.
  • Method Details

    • freeSpace

      @Deprecated public static long freeSpace(String path) throws IOException
      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(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 invalid
      IllegalStateException - if an error occurred in initialisation
      IOException - if an error occurs when finding the free space
      Since:
      1.1, enhanced OS support in 1.2 and 1.3
    • freeSpaceKb

      @Deprecated public static long freeSpaceKb(String path) throws IOException
      Deprecated.
      As of 2.6 deprecated without replacement. Please use FileStore.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 invalid
      IllegalStateException - if an error occurred in initialisation
      IOException - if an error occurs when finding the free space
      Since:
      1.2, enhanced OS support in 1.3
    • freeSpaceKb

      @Deprecated public static long freeSpaceKb(String path, long timeout) throws IOException
      Deprecated.
      As of 2.6 deprecated without replacement. Please use FileStore.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
      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:
      IllegalArgumentException - if the path is invalid
      IllegalStateException - if an error occurred in initialisation
      IOException - if an error occurs when finding the free space
      Since:
      2.0
    • freeSpaceKb

      @Deprecated public static long freeSpaceKb() throws IOException
      Deprecated.
      As of 2.6 deprecated without replacement. Please use FileStore.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 initialisation
      IOException - if an error occurs when finding the free space
      Since:
      2.0
    • freeSpaceKb

      @Deprecated public static long freeSpaceKb(long timeout) throws IOException
      Deprecated.
      As of 2.6 deprecated without replacement. Please use FileStore.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 initialisation
      IOException - if an error occurs when finding the free space
      Since:
      2.0
    • freeSpaceOS

      long freeSpaceOS(String path, int os, boolean kb, long timeout) throws IOException
      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 Unix
      os - the operating system code
      kb - whether to normalize to kilobytes
      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
      Throws:
      IllegalArgumentException - if the path is invalid
      IllegalStateException - if an error occurred in initialisation
      IOException - if an error occurs when finding the free space
    • freeSpaceWindows

      long freeSpaceWindows(String path, long timeout) throws IOException
      Deprecated.
      Find free space on the Windows platform using the 'dir' command.
      Parameters:
      path - the path to get free space for, including the colon
      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
      Throws:
      IOException - if an error occurs
    • parseDir

      long parseDir(String line, String path) throws IOException
      Deprecated.
      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
    • freeSpaceUnix

      long freeSpaceUnix(String path, boolean kb, boolean posix, long timeout) throws IOException
      Deprecated.
      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
      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 volume
      Throws:
      IOException - if an error occurs
    • parseBytes

      long parseBytes(String freeSpace, String path) throws IOException
      Deprecated.
      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
    • performCommand

      List<String> performCommand(String[] cmdAttribs, int max, long timeout) throws IOException
      Deprecated.
      Performs the os command.
      Parameters:
      cmdAttribs - the command line parameters
      max - The maximum limit for the lines returned
      timeout - 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

      Process openProcess(String[] cmdAttribs) throws IOException
      Deprecated.
      Opens the process to the operating system.
      Parameters:
      cmdAttribs - the command line parameters
      Returns:
      the process
      Throws:
      IOException - if an error occurs