Class FileUtils

java.lang.Object
org.apache.tomcat.util.http.fileupload.FileUtils

public class FileUtils extends 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 Details

    • FileUtils

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

    • deleteDirectory

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

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

      public static void forceDelete(File file) throws 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:
      NullPointerException - if the directory is null
      FileNotFoundException - if the file was not found
      IOException - in case deletion is unsuccessful
    • forceDeleteOnExit

      public static void forceDeleteOnExit(File file) throws 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:
      NullPointerException - if the file is null
      IOException - in case deletion is unsuccessful
    • forceMkdir

      public static void forceMkdir(File directory) throws 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:
      NullPointerException - if the directory is null
      IOException - if the directory cannot be created or the file already exists but is not a directory
    • forceMkdirParent

      public static void forceMkdirParent(File file) throws 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:
      NullPointerException - if the file is null
      IOException - if the parent directory cannot be created
      Since:
      IO 2.5
    • isSymlink

      public static boolean isSymlink(File file) throws 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:
      IOException - if an IO error occurs while checking the file
      Since:
      IO 2.0