java.lang.Object
org.apache.wicket.util.file.Files

public class Files extends Object
File utility methods.
Author:
Jonathan Locke
  • Method Details

    • basePath

      public static String basePath(String path, String extension)
      Strips off the given extension (probably returned from Files.extension()) from the path, yielding a base pathname.
      Parameters:
      path - The path, possibly with an extension to strip
      extension - The extension to strip, or null if no extension exists
      Returns:
      The path without any extension
    • extension

      public static String extension(String path)
      Gets extension from path
      Parameters:
      path - The path
      Returns:
      The extension, like "bmp" or "html", or null if none can be found
    • filename

      public static String filename(String path)
      Gets filename from path
      Parameters:
      path - The path
      Returns:
      The filename
    • remove

      public static boolean remove(File file)
      Deletes a normal file.

      If the file cannot be deleted for any reason then at most 50 retries are attempted with delay of 100ms at each 10th attempt.

      Parameters:
      file - the file to delete
      Returns:
      true if file was deleted, false if the file don't exist, is a folder or cannot be removed for some reason
    • removeFolder

      public static boolean removeFolder(File folder)
      Deletes a folder by recursively removing the files and folders inside it. Delegates the work to remove(File) for plain files.
      Parameters:
      folder - the folder to delete
      Returns:
      true if the folder is deleted successfully.
    • removeAsync

      public static boolean removeAsync(File file, IFileCleaner fileCleaner)
      Schedules a file for removal asynchronously.
      Parameters:
      file - the file to be removed
      fileCleaner - the file cleaner that will be used to remove the file
      Returns:
      false if the file is null or a folder, true - otherwise (i.e. if it is scheduled)
    • removeFolderAsync

      public static boolean removeFolderAsync(File folder, IFileCleaner fileCleaner)
      Schedules a folder and all files inside it for asynchronous removal.
      Parameters:
      folder - the folder to be removed
      fileCleaner - the file cleaner that will be used to remove the file
      Returns:
      false if the folder is null or a normal file, true - otherwise (i.e. if it is scheduled)
    • writeTo

      public static int writeTo(File file, InputStream input) throws IOException
      Writes the given input stream to the given file
      Parameters:
      file - The file to write to
      input - The input
      Returns:
      Number of bytes written
      Throws:
      IOException
    • readBytes

      public static byte[] readBytes(File file) throws IOException
      read binary file fully
      Parameters:
      file - file to read
      Returns:
      byte array representing the content of the file
      Throws:
      IOException - is something went wrong
    • writeTo

      public static int writeTo(File file, InputStream input, int bufSize) throws IOException
      Writes the given input stream to the given file
      Parameters:
      file - The file to write to
      input - The input
      bufSize - The memory buffer size. 4096 is a good value.
      Returns:
      Number of bytes written
      Throws:
      IOException
    • cleanupFilename

      public static String cleanupFilename(String filename)

      Replaces commonly unsupported characters with '_'

      Parameters:
      filename - to be cleaned
      Returns:
      cleaned filename
    • copy

      public static void copy(File sourceFile, File targetFile) throws IOException
      make a copy of a file
      Parameters:
      sourceFile - source file that needs to be cloned
      targetFile - target file that should be a duplicate of source file
      Throws:
      IOException - if something went wrong
    • getLocalFileFromUrl

      public static File getLocalFileFromUrl(URL url)
      for urls that point to local files (e.g. 'file:' or 'jar:file:') this methods returns a reference to the local file
      Parameters:
      url - url of the resource
      Returns:
      reference to a local file if url contains one, null otherwise
      See Also:
    • getLocalFileFromUrl

      public static File getLocalFileFromUrl(String url)
      for urls that point to local files (e.g. 'file:' or 'jar:file:') this methods returns a reference to the local file
      Parameters:
      url - url of the resource
      Returns:
      reference to a local file if url contains one, null otherwise
      See Also:
    • getLastModified

      public static Instant getLastModified(File file)
      get last modification timestamp for file
      Parameters:
      file -
      Returns:
      timestamp
    • mkdirs

      public static boolean mkdirs(File folder)
      Utility method for creating a directory. If the creation didn't succeed for some reason then at most 50 attempts are made with delay of 100ms at every 10th attempt.
      Parameters:
      folder - the folder to create
      Returns:
      true if the creation is successful, false - otherwise
    • list

      public static File[] list(File file)
      List all files inside the given file.
      Parameters:
      file - directory
      Returns:
      files, never null