Class FileUtil

    • Method Detail

      • normalizePath

        public static String normalizePath​(String path)
        Normalizes the path to cater for Windows and other platforms
      • isWindows

        public static boolean isWindows()
        Returns true, if the OS is windows
      • hasLeadingSeparator

        public static boolean hasLeadingSeparator​(String name)
        Does the name start with a leading separator
      • onlyPath

        public static String onlyPath​(String name)
        Returns only the leading path (returns null if no path)
      • compactPath

        public static String compactPath​(String path,
                                         char separator)
        Compacts a path by stacking it and reducing .., and uses the given separator.
      • compactPath

        public static String compactPath​(String path,
                                         String separator)
        Compacts a file path by stacking it and reducing .., and uses the given separator.
      • renameFile

        public static boolean renameFile​(File from,
                                         File to,
                                         boolean copyAndDeleteOnRenameFail)
                                  throws IOException
        Renames a file.
        Parameters:
        from - the from file
        to - the to file
        copyAndDeleteOnRenameFail - whether to fallback and do copy and delete, if renameTo fails
        Returns:
        true if the file was renamed, otherwise false
        Throws:
        IOException - is thrown if error renaming file
      • renameFileUsingCopy

        public static boolean renameFileUsingCopy​(File from,
                                                  File to)
                                           throws IOException
        Rename file using copy and delete strategy. This is primarily used in environments where the regular rename operation is unreliable.
        Parameters:
        from - the file to be renamed
        to - the new target file
        Returns:
        true if the file was renamed successfully, otherwise false
        Throws:
        IOException - If an I/O error occurs during copy or delete operations.
      • copyFile

        public static void copyFile​(File from,
                                    File to)
                             throws IOException
        Copies the file
        Parameters:
        from - the source file
        to - the destination file
        Throws:
        IOException - If an I/O error occurs during copy operation
      • deleteFile

        public static boolean deleteFile​(File file)
        Deletes the file.

        This implementation will attempt to delete the file up till three times with one second delay, which can mitigate problems on deleting files on some platforms such as Windows.

        Parameters:
        file - the file to delete
      • isAbsolute

        public static boolean isAbsolute​(File file)
        Is the given file an absolute file.

        Will also work around issue on Windows to consider files on Windows starting with a \ as absolute files. This makes the logic consistent across all OS platforms.

        Parameters:
        file - the file
        Returns:
        true if its an absolute path, false otherwise.
      • createNewFile

        public static boolean createNewFile​(File file)
                                     throws IOException
        Creates a new file.
        Parameters:
        file - the file
        Returns:
        true if created a new file, false otherwise
        Throws:
        IOException - is thrown if error creating the new file