Class FileUtils

    • Field Detail

      • ONE_KB

        public static final int ONE_KB
        The number of bytes in a kilobyte.
        See Also:
        Constant Field Values
      • ONE_MB

        public static final int ONE_MB
        The number of bytes in a megabyte.
        See Also:
        Constant Field Values
      • ONE_GB

        public static final int ONE_GB
        The number of bytes in a gigabyte.
        See Also:
        Constant Field Values
      • FS

        public static String FS
        The vm file separator
    • Constructor Detail

      • FileUtils

        public FileUtils()
    • Method Detail

      • getDefaultExcludesAsList

        public static List<String> getDefaultExcludesAsList()
        Returns:
        the default excludes pattern as list.
        See Also:
        getDefaultExcludes()
      • byteCountToDisplaySize

        public static String byteCountToDisplaySize​(int size)
        Returns a human-readable version of the file size (original is in bytes).
        Parameters:
        size - The number of bytes.
        Returns:
        A human-readable display value (includes units).
      • dirname

        public static String dirname​(String filename)
        Returns the directory path portion of a file specification string. Matches the equally named unix command.
        Parameters:
        filename - the file path
        Returns:
        The directory portion excluding the ending file separator.
      • filename

        public static String filename​(String filename)
        Returns the filename portion of a file specification string.
        Parameters:
        filename - the file path
        Returns:
        The filename string with extension.
      • basename

        public static String basename​(String filename)
        Returns the filename portion of a file specification string. Matches the equally named unix command.
        Parameters:
        filename - the file path
        Returns:
        The filename string without extension.
      • basename

        public static String basename​(String filename,
                                      String suffix)
        Returns the filename portion of a file specification string. Matches the equally named unix command.
        Parameters:
        filename - the file path
        suffix - the file suffix
        Returns:
        the basename of the file
      • extension

        public static String extension​(String filename)
        Returns the extension portion of a file specification string. This everything after the last dot '.' in the filename (NOT including the dot).
        Parameters:
        filename - the file path
        Returns:
        the extension of the file
      • fileExists

        public static boolean fileExists​(String fileName)
        Check if a file exits.
        Parameters:
        fileName - the file path.
        Returns:
        true if file exists.
      • fileRead

        public static String fileRead​(String file)
                               throws IOException
        Note: the file content is read with platform encoding.
        Parameters:
        file - the file path
        Returns:
        the file content using the platform encoding.
        Throws:
        IOException - if any
      • fileRead

        public static String fileRead​(String file,
                                      String encoding)
                               throws IOException
        Parameters:
        file - the file path
        encoding - the wanted encoding
        Returns:
        the file content using the specified encoding.
        Throws:
        IOException - if any
      • fileRead

        public static String fileRead​(File file)
                               throws IOException
        Note: the file content is read with platform encoding
        Parameters:
        file - the file path
        Returns:
        the file content using the platform encoding.
        Throws:
        IOException - if any
      • fileRead

        public static String fileRead​(File file,
                                      String encoding)
                               throws IOException
        Parameters:
        file - the file path
        encoding - the wanted encoding
        Returns:
        the file content using the specified encoding.
        Throws:
        IOException - if any
      • fileAppend

        public static void fileAppend​(String fileName,
                                      String data)
                               throws IOException
        Deprecated.
        use java.nio.files.Files.write(filename, data.getBytes(encoding), StandardOpenOption.APPEND, StandardOpenOption.CREATE)
        Appends data to a file. The file will be created if it does not exist. Note: the data is written with platform encoding
        Parameters:
        fileName - The path of the file to write.
        data - The content to write to the file.
        Throws:
        IOException - if any
      • fileAppend

        public static void fileAppend​(String fileName,
                                      String encoding,
                                      String data)
                               throws IOException
        Deprecated.
        use java.nio.files.Files.write(filename, data.getBytes(encoding), StandardOpenOption.APPEND, StandardOpenOption.CREATE)
        Appends data to a file. The file will be created if it does not exist.
        Parameters:
        fileName - The path of the file to write.
        encoding - The encoding of the file.
        data - The content to write to the file.
        Throws:
        IOException - if any
      • fileWrite

        public static void fileWrite​(String fileName,
                                     String data)
                              throws IOException
        Writes data to a file. The file will be created if it does not exist. Note: the data is written with platform encoding
        Parameters:
        fileName - The path of the file to write.
        data - The content to write to the file.
        Throws:
        IOException - if any
      • fileWrite

        public static void fileWrite​(String fileName,
                                     String encoding,
                                     String data)
                              throws IOException
        Writes data to a file. The file will be created if it does not exist.
        Parameters:
        fileName - The path of the file to write.
        encoding - The encoding of the file.
        data - The content to write to the file.
        Throws:
        IOException - if any
      • fileWrite

        public static void fileWrite​(File file,
                                     String data)
                              throws IOException
        Writes data to a file. The file will be created if it does not exist. Note: the data is written with platform encoding
        Parameters:
        file - The file to write.
        data - The content to write to the file.
        Throws:
        IOException - if any
        Since:
        2.0.6
      • fileWrite

        public static void fileWrite​(File file,
                                     String encoding,
                                     String data)
                              throws IOException
        Writes data to a file. The file will be created if it does not exist.
        Parameters:
        file - The file to write.
        encoding - The encoding of the file.
        data - The content to write to the file.
        Throws:
        IOException - if any
        Since:
        2.0.6
      • fileDelete

        public static void fileDelete​(String fileName)
        Deletes a file.
        Parameters:
        fileName - The path of the file to delete.
      • waitFor

        public static boolean waitFor​(String fileName,
                                      int seconds)
        Waits for NFS to propagate a file creation, imposing a timeout.
        Parameters:
        fileName - The path of the file.
        seconds - The maximum time in seconds to wait.
        Returns:
        True if file exists.
      • waitFor

        public static boolean waitFor​(File file,
                                      int seconds)
        Waits for NFS to propagate a file creation, imposing a timeout.
        Parameters:
        file - The file.
        seconds - The maximum time in seconds to wait.
        Returns:
        True if file exists.
      • getFile

        public static File getFile​(String fileName)
        Creates a file handle.
        Parameters:
        fileName - The path of the file.
        Returns:
        A File manager.
      • getFilesFromExtension

        public static String[] getFilesFromExtension​(String directory,
                                                     String[] extensions)

        Given a directory and an array of extensions return an array of compliant files.

        TODO Should an ignore list be passed in? TODO Should a recurse flag be passed in?

        The given extensions should be like "java" and not like ".java"

        Parameters:
        directory - The path of the directory.
        extensions - an array of expected extensions.
        Returns:
        An array of files for the wanted extensions.
      • contentEquals

        public static boolean contentEquals​(File file1,
                                            File file2)
                                     throws IOException
        Compare the contents of two files to determine if they are equal or not.
        Parameters:
        file1 - the first file
        file2 - the second file
        Returns:
        true if the content of the files are equal or they both don't exist, false otherwise
        Throws:
        IOException - if any
      • toFile

        public static File toFile​(URL url)
        Convert from a URL to a File.
        Parameters:
        url - File URL.
        Returns:
        The equivalent File object, or null if the URL's protocol is not file
      • toURLs

        public static URL[] toURLs​(File[] files)
                            throws IOException
        Convert the array of Files into a list of URLs.
        Parameters:
        files - the array of files
        Returns:
        the array of URLs
        Throws:
        IOException - if an error occurs
      • removeExtension

        public static String removeExtension​(String filename)
        Remove extension from filename. ie
         foo.txt    --> foo
         a\b\c.jpg  --> a\b\c
         a\b\c      --> a\b\c
         
        Parameters:
        filename - the path of the file
        Returns:
        the filename minus extension
      • getExtension

        public static String getExtension​(String filename)
        Get extension from filename. ie
         foo.txt    --> "txt"
         a\b\c.jpg  --> "jpg"
         a\b\c      --> ""
         
        Parameters:
        filename - the path of the file
        Returns:
        the extension of filename or "" if none
      • removePath

        public static String removePath​(String filepath)
        Remove path from filename. Equivalent to the unix command basename ie.
         a/b/c.txt --> c.txt
         a.txt     --> a.txt
         
        Parameters:
        filepath - the path of the file
        Returns:
        the filename minus path
      • removePath

        public static String removePath​(String filepath,
                                        char fileSeparatorChar)
        Remove path from filename. ie.
         a/b/c.txt --> c.txt
         a.txt     --> a.txt
         
        Parameters:
        filepath - the path of the file
        fileSeparatorChar - the file separator character like / on Unix platforms.
        Returns:
        the filename minus path
      • getPath

        public static String getPath​(String filepath)
        Get path from filename. Roughly equivalent to the unix command dirname. ie.
         a/b/c.txt --> a/b
         a.txt     --> ""
         
        Parameters:
        filepath - the filepath
        Returns:
        the filename minus path
      • getPath

        public static String getPath​(String filepath,
                                     char fileSeparatorChar)
        Get path from filename. ie.
         a/b/c.txt --> a/b
         a.txt     --> ""
         
        Parameters:
        filepath - the filepath
        fileSeparatorChar - the file separator character like / on Unix platforms.
        Returns:
        the filename minus path
      • copyFileToDirectory

        public static void copyFileToDirectory​(String source,
                                               String destinationDirectory)
                                        throws IOException
        Copy file from source to destination. If destinationDirectory does not exist, it (and any parent directories) will be created. If a file source in destinationDirectory exists, it will be overwritten.
        Parameters:
        source - An existing File to copy.
        destinationDirectory - A directory to copy source into.
        Throws:
        FileNotFoundException - if source isn't a normal file.
        IllegalArgumentException - if destinationDirectory isn't a directory.
        IOException - if source does not exist, the file in destinationDirectory cannot be written to, or an IO error occurs during copying.
      • copyFileToDirectoryIfModified

        public static void copyFileToDirectoryIfModified​(String source,
                                                         String destinationDirectory)
                                                  throws IOException
        Copy file from source to destination only if source is newer than the target file. If destinationDirectory does not exist, it (and any parent directories) will be created. If a file source in destinationDirectory exists, it will be overwritten.
        Parameters:
        source - An existing File to copy.
        destinationDirectory - A directory to copy source into.
        Throws:
        FileNotFoundException - if source isn't a normal file.
        IllegalArgumentException - if destinationDirectory isn't a directory.
        IOException - if source does not exist, the file in destinationDirectory cannot be written to, or an IO error occurs during copying.
      • copyFileToDirectory

        public static void copyFileToDirectory​(File source,
                                               File destinationDirectory)
                                        throws IOException
        Copy file from source to destination. If destinationDirectory does not exist, it (and any parent directories) will be created. If a file source in destinationDirectory exists, it will be overwritten.
        Parameters:
        source - An existing File to copy.
        destinationDirectory - A directory to copy source into.
        Throws:
        FileNotFoundException - if source isn't a normal file.
        IllegalArgumentException - if destinationDirectory isn't a directory.
        IOException - if source does not exist, the file in destinationDirectory cannot be written to, or an IO error occurs during copying.
      • copyFileToDirectoryIfModified

        public static void copyFileToDirectoryIfModified​(File source,
                                                         File destinationDirectory)
                                                  throws IOException
        Copy file from source to destination only if source is newer than the target file. If destinationDirectory does not exist, it (and any parent directories) will be created. If a file source in destinationDirectory exists, it will be overwritten.
        Parameters:
        source - An existing File to copy.
        destinationDirectory - A directory to copy source into.
        Throws:
        FileNotFoundException - if source isn't a normal file.
        IllegalArgumentException - if destinationDirectory isn't a directory.
        IOException - if source does not exist, the file in destinationDirectory cannot be written to, or an IO error occurs during copying.
      • mkDirs

        public static void mkDirs​(File sourceBase,
                                  String[] dirs,
                                  File destination)
                           throws IOException
        Creates a number of directories, as delivered from DirectoryScanner
        Parameters:
        sourceBase - The basedir used for the directory scan
        dirs - The getIncludedDirs from the dirscanner
        destination - The base dir of the output structure
        Throws:
        IOException - io issue
      • copyFile

        public static void copyFile​(File source,
                                    File destination)
                             throws IOException
        Copy file from source to destination. The directories up to destination will be created if they don't already exist. destination will be overwritten if it already exists.
        Parameters:
        source - An existing non-directory File to copy bytes from.
        destination - A non-directory File to write bytes to (possibly overwriting).
        Throws:
        IOException - if source does not exist, destination cannot be written to, or an IO error occurs during copying.
        FileNotFoundException - if destination is a directory (use copyFileToDirectory(java.lang.String, java.lang.String)).
      • linkFile

        public static void linkFile​(File source,
                                    File destination)
                             throws IOException
        Link file from destination to source. The directories up to destination will be created if they don't already exist. destination will be overwritten if it already exists.
        Parameters:
        source - An existing non-directory File to link to.
        destination - A non-directory File becoming the link (possibly overwriting).
        Throws:
        IOException - if source does not exist, destination cannot be created, or an IO error occurs during linking.
        FileNotFoundException - if destination is a directory (use copyFileToDirectory(java.lang.String, java.lang.String)).
      • copyFileIfModified

        public static boolean copyFileIfModified​(File source,
                                                 File destination)
                                          throws IOException
        Copy file from source to destination only if source timestamp is later than the destination timestamp. The directories up to destination will be created if they don't already exist. destination will be overwritten if it already exists.
        Parameters:
        source - An existing non-directory File to copy bytes from.
        destination - A non-directory File to write bytes to (possibly overwriting).
        Returns:
        true if no problem occured
        Throws:
        IOException - if source does not exist, destination cannot be written to, or an IO error occurs during copying.
      • copyURLToFile

        public static void copyURLToFile​(URL source,
                                         File destination)
                                  throws IOException
        Copies bytes from the URL source to a file destination. The directories up to destination will be created if they don't already exist. destination will be overwritten if it already exists.
        Parameters:
        source - A URL to copy bytes from.
        destination - A non-directory File to write bytes to (possibly overwriting).
        Throws:
        IOException - if
        • source URL cannot be opened
        • destination cannot be written to
        • an IO error occurs during copying
      • copyStreamToFile

        public static void copyStreamToFile​(InputStreamFacade source,
                                            File destination)
                                     throws IOException
        Copies bytes from the InputStream source to a file destination. The directories up to destination will be created if they don't already exist. destination will be overwritten if it already exists.
        Parameters:
        source - An InputStream to copy bytes from. This stream is guaranteed to be closed.
        destination - A non-directory File to write bytes to (possibly overwriting).
        Throws:
        IOException - if
        • source URL cannot be opened
        • destination cannot be written to
        • an IO error occurs during copying
      • normalize

        public static String normalize​(String path)
        Normalize a path. Eliminates "/../" and "/./" in a string. Returns null if the ..'s went past the root. Eg:
         /foo//               -->     /foo/
         /foo/./              -->     /foo/
         /foo/../bar          -->     /bar
         /foo/../bar/         -->     /bar/
         /foo/../bar/../baz   -->     /baz
         //foo//./bar         -->     /foo/bar
         /../                 -->     null
         
        Parameters:
        path - the path to normalize
        Returns:
        the normalized String, or null if too many ..'s.
      • catPath

        public static String catPath​(String lookupPath,
                                     String path)

        Will concatenate 2 paths. Paths with .. will be properly handled.

        Eg.,
         /a/b/c + d = /a/b/d
         /a/b/c + ../d = /a/d
         

        Thieved from Tomcat sources...

        Parameters:
        lookupPath - a path
        path - the path to concatenate
        Returns:
        The concatenated paths, or null if error occurs
      • resolveFile

        public static File resolveFile​(File baseFile,
                                       String filename)
        Resolve a file filename to it's canonical form. If filename is relative (doesn't start with /), it will be resolved relative to baseFile, otherwise it is treated as a normal root-relative path.
        Parameters:
        baseFile - Where to resolve filename from, if filename is relative.
        filename - Absolute or relative file path to resolve.
        Returns:
        The canonical File of filename.
      • forceDelete

        public static void forceDelete​(String file)
                                throws IOException
        Delete a file. If file is directory delete it and all sub-directories.
        Parameters:
        file - the file path
        Throws:
        IOException - if any
      • forceDelete

        public static void forceDelete​(File file)
                                throws IOException
        Delete a file. If file is directory delete it and all sub-directories.
        Parameters:
        file - a file
        Throws:
        IOException - if any
      • forceDeleteOnExit

        public static void forceDeleteOnExit​(File file)
                                      throws IOException
        Schedule a file to be deleted when JVM exits. If file is directory delete it and all sub-directories.
        Parameters:
        file - a file
        Throws:
        IOException - if any
      • deleteDirectory

        public static void deleteDirectory​(String directory)
                                    throws IOException
        Recursively delete a directory.
        Parameters:
        directory - a directory
        Throws:
        IOException - if any
      • deleteDirectory

        public static void deleteDirectory​(File directory)
                                    throws IOException
        Recursively delete a directory.
        Parameters:
        directory - a directory
        Throws:
        IOException - if any
      • cleanDirectory

        public static void cleanDirectory​(String directory)
                                   throws IOException
        Clean a directory without deleting it.
        Parameters:
        directory - a directory
        Throws:
        IOException - if any
      • cleanDirectory

        public static void cleanDirectory​(File directory)
                                   throws IOException
        Clean a directory without deleting it.
        Parameters:
        directory - a directory
        Throws:
        IOException - if any
      • sizeOfDirectory

        public static long sizeOfDirectory​(String directory)
        Recursively count size of a directory.
        Parameters:
        directory - a directory
        Returns:
        size of directory in bytes.
      • sizeOfDirectory

        public static long sizeOfDirectory​(File directory)
        Recursively count size of a directory.
        Parameters:
        directory - a directory
        Returns:
        size of directory in bytes.
      • getFiles

        public static List<File> getFiles​(File directory,
                                          String includes,
                                          String excludes)
                                   throws IOException
        Return the files contained in the directory, using inclusion and exclusion Ant patterns, including the directory name in each of the files
        Parameters:
        directory - the directory to scan
        includes - the includes pattern, comma separated
        excludes - the excludes pattern, comma separated
        Returns:
        a list of File objects
        Throws:
        IOException - io issue
        See Also:
        getFileNames(File, String, String, boolean)
      • getFiles

        public static List<File> getFiles​(File directory,
                                          String includes,
                                          String excludes,
                                          boolean includeBasedir)
                                   throws IOException
        Return the files contained in the directory, using inclusion and exclusion Ant patterns
        Parameters:
        directory - the directory to scan
        includes - the includes pattern, comma separated
        excludes - the excludes pattern, comma separated
        includeBasedir - true to include the base dir in each file
        Returns:
        a list of File objects
        Throws:
        IOException - io issue
        See Also:
        getFileNames(File, String, String, boolean)
      • getFileNames

        public static List<String> getFileNames​(File directory,
                                                String includes,
                                                String excludes,
                                                boolean includeBasedir)
                                         throws IOException
        Return a list of files as String depending options. This method use case sensitive file name.
        Parameters:
        directory - the directory to scan
        includes - the includes pattern, comma separated
        excludes - the excludes pattern, comma separated
        includeBasedir - true to include the base dir in each String of file
        Returns:
        a list of files as String
        Throws:
        IOException - io issue
      • getFileNames

        public static List<String> getFileNames​(File directory,
                                                String includes,
                                                String excludes,
                                                boolean includeBasedir,
                                                boolean isCaseSensitive)
                                         throws IOException
        Return a list of files as String depending options.
        Parameters:
        directory - the directory to scan
        includes - the includes pattern, comma separated
        excludes - the excludes pattern, comma separated
        includeBasedir - true to include the base dir in each String of file
        isCaseSensitive - true if case sensitive
        Returns:
        a list of files as String
        Throws:
        IOException - io issue
      • getDirectoryNames

        public static List<String> getDirectoryNames​(File directory,
                                                     String includes,
                                                     String excludes,
                                                     boolean includeBasedir)
                                              throws IOException
        Return a list of directories as String depending options. This method use case sensitive file name.
        Parameters:
        directory - the directory to scan
        includes - the includes pattern, comma separated
        excludes - the excludes pattern, comma separated
        includeBasedir - true to include the base dir in each String of file
        Returns:
        a list of directories as String
        Throws:
        IOException - io issue
      • getDirectoryNames

        public static List<String> getDirectoryNames​(File directory,
                                                     String includes,
                                                     String excludes,
                                                     boolean includeBasedir,
                                                     boolean isCaseSensitive)
                                              throws IOException
        Return a list of directories as String depending options.
        Parameters:
        directory - the directory to scan
        includes - the includes pattern, comma separated
        excludes - the excludes pattern, comma separated
        includeBasedir - true to include the base dir in each String of file
        isCaseSensitive - true if case sensitive
        Returns:
        a list of directories as String
        Throws:
        IOException - io issue
      • getFileAndDirectoryNames

        public static List<String> getFileAndDirectoryNames​(File directory,
                                                            String includes,
                                                            String excludes,
                                                            boolean includeBasedir,
                                                            boolean isCaseSensitive,
                                                            boolean getFiles,
                                                            boolean getDirectories)
                                                     throws IOException
        Return a list of files as String depending options.
        Parameters:
        directory - the directory to scan
        includes - the includes pattern, comma separated
        excludes - the excludes pattern, comma separated
        includeBasedir - true to include the base dir in each String of file
        isCaseSensitive - true if case sensitive
        getFiles - true if get files
        getDirectories - true if get directories
        Returns:
        a list of files as String
        Throws:
        IOException - io issue
      • copyDirectory

        public static void copyDirectory​(File sourceDirectory,
                                         File destinationDirectory)
                                  throws IOException
        Copy a directory to an other one.
        Parameters:
        sourceDirectory - the source dir
        destinationDirectory - the target dir
        Throws:
        IOException - if any
      • copyDirectory

        public static void copyDirectory​(File sourceDirectory,
                                         File destinationDirectory,
                                         String includes,
                                         String excludes)
                                  throws IOException
        Copy a directory to an other one.
        Parameters:
        sourceDirectory - the source dir
        destinationDirectory - the target dir
        includes - include pattern
        excludes - exclude pattern
        Throws:
        IOException - if any
        See Also:
        getFiles(File, String, String)
      • copyDirectoryLayout

        public static void copyDirectoryLayout​(File sourceDirectory,
                                               File destinationDirectory,
                                               String[] includes,
                                               String[] excludes)
                                        throws IOException

        Copies a entire directory layout : no files will be copied only directories

        Note:
        • It will include empty directories.
        • The sourceDirectory must exists.
        Parameters:
        sourceDirectory - the source dir
        destinationDirectory - the target dir
        includes - include pattern
        excludes - exclude pattern
        Throws:
        IOException - if any
        Since:
        1.5.7
      • copyDirectoryStructure

        public static void copyDirectoryStructure​(File sourceDirectory,
                                                  File destinationDirectory)
                                           throws IOException

        Copies a entire directory structure.

        Note:
        • It will include empty directories.
        • The sourceDirectory must exists.
        Parameters:
        sourceDirectory - the source dir
        destinationDirectory - the target dir
        Throws:
        IOException - if any
      • copyDirectoryStructureIfModified

        public static void copyDirectoryStructureIfModified​(File sourceDirectory,
                                                            File destinationDirectory)
                                                     throws IOException

        Copies an entire directory structure but only source files with timestamp later than the destinations'.

        Note:
        • It will include empty directories.
        • The sourceDirectory must exists.
        Parameters:
        sourceDirectory - the source dir
        destinationDirectory - the target dir
        Throws:
        IOException - if any
      • rename

        public static void rename​(File from,
                                  File to)
                           throws IOException

        Renames a file, even if that involves crossing file system boundaries.

        This will remove to (if it exists), ensure that to's parent directory exists and move from, which involves deleting from as well.

        Parameters:
        from - the file to move
        to - the new file name
        Throws:
        IOException - if anything bad happens during this process. Note that to may have been deleted already when this happens.
      • createTempFile

        public static File createTempFile​(String prefix,
                                          String suffix,
                                          File parentDir)

        Create a temporary file in a given directory.

        The file denoted by the returned abstract pathname did not exist before this method was invoked, any subsequent invocation of this method will yield a different file name.

        The filename is prefixNNNNNsuffix where NNNN is a random number

        This method is different to File.createTempFile(String, String, File) of JDK 1.2 as it doesn't create the file itself. It uses the location pointed to by java.io.tmpdir when the parentDir attribute is null.

        To delete automatically the file created by this method, use the File.deleteOnExit() method.

        Parameters:
        prefix - prefix before the random number
        suffix - file extension; include the '.'
        parentDir - Directory to create the temporary file in -java.io.tmpdir used if not specificed
        Returns:
        a File reference to the new temporary file.
      • copyFile

        public static void copyFile​(File from,
                                    File to,
                                    String encoding,
                                    FileUtils.FilterWrapper[] wrappers)
                             throws IOException
        If wrappers is null or empty, the file will be copy only if to.lastModified() < from.lastModified()
        Parameters:
        from - the file to copy
        to - the destination file
        encoding - the file output encoding (only if wrappers is not empty)
        wrappers - array of FileUtils.FilterWrapper
        Throws:
        IOException - if an IO error occurs during copying or filtering
      • copyFile

        public static void copyFile​(File from,
                                    File to,
                                    String encoding,
                                    FileUtils.FilterWrapper[] wrappers,
                                    boolean overwrite)
                             throws IOException
        If wrappers is null or empty, the file will be copy only if to.lastModified() < from.lastModified(), if overwrite is true
        Parameters:
        from - the file to copy
        to - the destination file
        encoding - the file output encoding (only if wrappers is not empty)
        wrappers - array of FileUtils.FilterWrapper
        overwrite - if true and wrappers is null or empty, the file will be copied even if to.lastModified() < from.lastModified()
        Throws:
        IOException - if an IO error occurs during copying or filtering
        Since:
        1.5.2
      • loadFile

        public static List<String> loadFile​(File file)
                                     throws IOException
        Note: the file content is read with platform encoding
        Parameters:
        file - the file
        Returns:
        a List containing every every line not starting with # and not empty
        Throws:
        IOException - if any
      • isValidWindowsFileName

        public static boolean isValidWindowsFileName​(File f)
        For Windows OS, check if the file name contains any of the following characters: ":", "*", "?", "\"", "<", ">", "|"
        Parameters:
        f - not null file
        Returns:
        false if the file path contains any of forbidden Windows characters, true if the Os is not Windows or if the file path respect the Windows constraints.
        Since:
        1.5.2
        See Also:
        INVALID_CHARACTERS_FOR_WINDOWS_FILE_NAME