Class FileSystemUtils


  • @Deprecated
    public class FileSystemUtils
    extends java.lang.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 java.lang.String DF
      Deprecated.
      The path to df
      private static int INIT_PROBLEM
      Deprecated.
      Operating system state flag for error.
      private static FileSystemUtils INSTANCE
      Deprecated.
      Singleton instance, used mainly for testing.
      private static int OS
      Deprecated.
      The operating system flag.
      private static int OTHER
      Deprecated.
      Operating system state flag for neither Unix nor Windows.
      private static int POSIX_UNIX
      Deprecated.
      Operating system state flag for Posix flavour Unix.
      private static int UNIX
      Deprecated.
      Operating system state flag for Unix.
      private static int WINDOWS
      Deprecated.
      Operating system state flag for Windows.
    • Constructor Summary

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

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method 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()
      Deprecated.
      As of 2.6 deprecated without replacement.
      static long freeSpaceKb​(long timeout)
      Deprecated.
      As of 2.6 deprecated without replacement.
      static long freeSpaceKb​(java.lang.String path)
      Deprecated.
      As of 2.6 deprecated without replacement.
      static long freeSpaceKb​(java.lang.String path, long timeout)
      Deprecated.
      As of 2.6 deprecated without replacement.
      (package private) long freeSpaceOS​(java.lang.String path, int os, boolean kb, java.time.Duration timeout)
      Deprecated.
      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, java.time.Duration timeout)
      Deprecated.
      Find free space on the *nix platform using the 'df' command.
      (package private) long freeSpaceWindows​(java.lang.String path, java.time.Duration timeout)
      Deprecated.
      Find free space on the Windows platform using the 'dir' command.
      (package private) java.lang.Process openProcess​(java.lang.String[] cmdAttribs)
      Deprecated.
      Opens the process to the operating system.
      (package private) long parseBytes​(java.lang.String freeSpace, java.lang.String path)
      Deprecated.
      Parses the bytes from a string.
      (package private) long parseDir​(java.lang.String line, java.lang.String path)
      Deprecated.
      Parses the Windows dir response last line
      (package private) java.util.List<java.lang.String> performCommand​(java.lang.String[] cmdAttribs, int max, java.time.Duration timeout)
      Deprecated.
      Performs an OS command.
      • Methods inherited from class java.lang.Object

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

      • 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:
        Constant Field Values
      • OTHER

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

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

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

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

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

        private static final java.lang.String DF
        Deprecated.
        The path to df
    • Constructor Detail

      • FileSystemUtils

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

      • freeSpace

        @Deprecated
        public static long freeSpace​(java.lang.String path)
                              throws java.io.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 favor 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:
        java.lang.IllegalArgumentException - if the path is invalid
        java.lang.IllegalStateException - if an error occurred in initialization
        java.io.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()
                                throws java.io.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(FileUtils.current().getAbsolutePath())
         
        Returns:
        the amount of free drive space on the drive or volume in kilobytes
        Throws:
        java.lang.IllegalStateException - if an error occurred in initialization
        java.io.IOException - if an error occurs when finding the free space
        Since:
        2.0
      • freeSpaceKb

        @Deprecated
        public static long freeSpaceKb​(long timeout)
                                throws java.io.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(FileUtils.current().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:
        java.lang.IllegalStateException - if an error occurred in initialization
        java.io.IOException - if an error occurs when finding the free space
        Since:
        2.0
      • freeSpaceKb

        @Deprecated
        public static long freeSpaceKb​(java.lang.String path)
                                throws java.io.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 an 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:
        java.lang.IllegalArgumentException - if the path is invalid
        java.lang.IllegalStateException - if an error occurred in initialization
        java.io.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​(java.lang.String path,
                                       long timeout)
                                throws java.io.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 an 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:
        java.lang.IllegalArgumentException - if the path is invalid
        java.lang.IllegalStateException - if an error occurred in initialization
        java.io.IOException - if an error occurs when finding the free space
        Since:
        2.0
      • freeSpaceOS

        long freeSpaceOS​(java.lang.String path,
                         int os,
                         boolean kb,
                         java.time.Duration timeout)
                  throws java.io.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:
        java.lang.IllegalArgumentException - if the path is invalid
        java.lang.IllegalStateException - if an error occurred in initialization
        java.io.IOException - if an error occurs when finding the free space
      • freeSpaceUnix

        long freeSpaceUnix​(java.lang.String path,
                           boolean kb,
                           boolean posix,
                           java.time.Duration timeout)
                    throws java.io.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:
        java.io.IOException - If an I/O error occurs
      • freeSpaceWindows

        long freeSpaceWindows​(java.lang.String path,
                              java.time.Duration timeout)
                       throws java.io.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:
        java.io.IOException - If an I/O error occurs
      • openProcess

        java.lang.Process openProcess​(java.lang.String[] cmdAttribs)
                               throws java.io.IOException
        Deprecated.
        Opens the process to the operating system.
        Parameters:
        cmdAttribs - the command line parameters
        Returns:
        the process
        Throws:
        java.io.IOException - If an I/O error occurs
      • parseBytes

        long parseBytes​(java.lang.String freeSpace,
                        java.lang.String path)
                 throws java.io.IOException
        Deprecated.
        Parses the bytes from a string.
        Parameters:
        freeSpace - the free space string
        path - the path
        Returns:
        the number of bytes
        Throws:
        java.io.IOException - If an I/O error occurs
      • parseDir

        long parseDir​(java.lang.String line,
                      java.lang.String path)
               throws java.io.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:
        java.io.IOException - If an I/O error occurs
      • performCommand

        java.util.List<java.lang.String> performCommand​(java.lang.String[] cmdAttribs,
                                                        int max,
                                                        java.time.Duration timeout)
                                                 throws java.io.IOException
        Deprecated.
        Performs an 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:
        java.io.IOException - if an error occurs