Class FileUtils


  • public class FileUtils
    extends java.lang.Object
    General file manipulation utilities.

    Facilities are provided in the following areas:

    • writing to a file
    • reading from a file
    • make a directory including parent directories
    • copying files and directories
    • deleting files and directories
    • converting to and from a URL
    • listing files and directories by filter and extension
    • comparing file content
    • file last changed date
    • calculating a checksum

    Note that a specific charset should be specified whenever possible. Relying on the platform default means that the code is Locale-dependent. Only use the default if the files are known to always use the platform default.

    Origin of code: Excalibur, Alexandria, Commons-Utils

    • Constructor Summary

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

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void cleanDirectory​(java.io.File directory)
      Cleans a directory without deleting it.
      static void deleteDirectory​(java.io.File directory)
      Deletes a directory recursively.
      static void forceDelete​(java.io.File file)
      Deletes a file.
      static void forceDeleteOnExit​(java.io.File file)
      Schedules a file to be deleted when JVM exits.
      static void forceMkdir​(java.io.File directory)
      Makes a directory, including any necessary but nonexistent parent directories.
      static void forceMkdirParent​(java.io.File file)
      Makes any necessary but nonexistent parent directories for a given File.
      static boolean isSymlink​(java.io.File file)
      Determines whether the specified file is a Symbolic Link rather than an actual file.
      • Methods inherited from class java.lang.Object

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

      • FileUtils

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

      • deleteDirectory

        public static void deleteDirectory​(java.io.File directory)
                                    throws java.io.IOException
        Deletes a directory recursively.
        Parameters:
        directory - directory to delete
        Throws:
        java.io.IOException - in case deletion is unsuccessful
        java.lang.IllegalArgumentException - if directory does not exist or is not a directory
      • cleanDirectory

        public static void cleanDirectory​(java.io.File directory)
                                   throws java.io.IOException
        Cleans a directory without deleting it.
        Parameters:
        directory - directory to clean
        Throws:
        java.io.IOException - in case cleaning is unsuccessful
        java.lang.IllegalArgumentException - if directory does not exist or is not a directory
      • forceDelete

        public static void forceDelete​(java.io.File file)
                                throws java.io.IOException
        Deletes a file. If file is a directory, delete it and all sub-directories.

        The difference between File.delete() and this method are:

        • A directory to be deleted does not have to be empty.
        • You get exceptions when a file or directory cannot be deleted. (java.io.File methods returns a boolean)
        Parameters:
        file - file or directory to delete, must not be null
        Throws:
        java.lang.NullPointerException - if the directory is null
        java.io.FileNotFoundException - if the file was not found
        java.io.IOException - in case deletion is unsuccessful
      • forceDeleteOnExit

        public static void forceDeleteOnExit​(java.io.File file)
                                      throws java.io.IOException
        Schedules a file to be deleted when JVM exits. If file is directory delete it and all sub-directories.
        Parameters:
        file - file or directory to delete, must not be null
        Throws:
        java.lang.NullPointerException - if the file is null
        java.io.IOException - in case deletion is unsuccessful
      • forceMkdir

        public static void forceMkdir​(java.io.File directory)
                               throws java.io.IOException
        Makes a directory, including any necessary but nonexistent parent directories. If a file already exists with specified name but it is not a directory then an IOException is thrown. If the directory cannot be created (or does not already exist) then an IOException is thrown.
        Parameters:
        directory - directory to create, must not be null
        Throws:
        java.lang.NullPointerException - if the directory is null
        java.io.IOException - if the directory cannot be created or the file already exists but is not a directory
      • forceMkdirParent

        public static void forceMkdirParent​(java.io.File file)
                                     throws java.io.IOException
        Makes any necessary but nonexistent parent directories for a given File. If the parent directory cannot be created then an IOException is thrown.
        Parameters:
        file - file with parent to create, must not be null
        Throws:
        java.lang.NullPointerException - if the file is null
        java.io.IOException - if the parent directory cannot be created
        Since:
        2.5
      • isSymlink

        public static boolean isSymlink​(java.io.File file)
                                 throws java.io.IOException
        Determines whether the specified file is a Symbolic Link rather than an actual file.

        Will not return true if there is a Symbolic Link anywhere in the path, only if the specific file is.

        Note: the current implementation always returns false if the system is detected as Windows using File.separatorChar == '\\'

        Parameters:
        file - the file to check
        Returns:
        true if the file is a Symbolic Link
        Throws:
        java.io.IOException - if an IO error occurs while checking the file
        Since:
        2.0