Class Files


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

      • 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(String)
      • 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:
        getLocalFileFromUrl(URL)
      • 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