org.apache.commons.io

## Class FileSystemUtils

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

- 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()`

      @Deprecated
      public class FileSystemUtils
      extends 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
  Since:
    1.1

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `FileSystemUtils()` Deprecated. Instances should NOT be constructed in standard programming.

  - ### Method Summary

    All Methods Static Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `static long` | `freeSpace(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. Please use `FileStore.getUsableSpace()`.
    `static long` | `freeSpaceKb(long timeout)` Deprecated. As of 2.6 deprecated without replacement. Please use `FileStore.getUsableSpace()`.
    `static long` | `freeSpaceKb(String path)` Deprecated. As of 2.6 deprecated without replacement. Please use `FileStore.getUsableSpace()`.
    `static long` | `freeSpaceKb(String path, long timeout)` Deprecated. As of 2.6 deprecated without replacement. Please use `FileStore.getUsableSpace()`.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### FileSystemUtils

          public FileSystemUtils()

      Deprecated.
      Instances should NOT be constructed in standard programming.

  - ### Method Detail

    - #### 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 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:
        `IllegalArgumentException` - if the path is invalid
        `IllegalStateException` - if an error occurred in initialization
        `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 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:
        `IllegalStateException` - if an error occurred in initialization
        `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(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:
        `IllegalStateException` - if an error occurred in initialization
        `IOException` - if an error occurs when finding the free space
      Since:
        2.0

    - #### 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 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:
        `IllegalArgumentException` - if the path is invalid
        `IllegalStateException` - if an error occurred in initialization
        `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 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:
        `IllegalArgumentException` - if the path is invalid
        `IllegalStateException` - if an error occurred in initialization
        `IOException` - if an error occurs when finding the free space
      Since:
        2.0

Copyright © 2002–2023 The Apache Software Foundation. All rights reserved.