Class FileTool


  • public class FileTool
    extends java.lang.Object
    File management toolbox
    This class only provides static variables and methods
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  FileTool.DeleteOnCloseInputStream
      Custom FileInputFile with auto-deletion on close
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int BUFFER_SIZE
      Buffer size
      static int UPLOAD_SIZE_UNIT
      MAX_UPLOAD_SIZE unit = 1Mo
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static boolean cleanDir​(java.io.File file)
      Clean dir content
      static boolean cleanDir​(java.io.File file, boolean silent)
      Clean dir content
      static boolean cleanDir​(java.lang.String path)
      Clean dir content
      static boolean cleanDir​(java.lang.String path, boolean silent)
      Clean dir content
      static void concatFiles​(java.io.InputStream[] is, java.io.OutputStream out)
      Concat all input stream into output stream, flush and close
      static void copyFile​(java.io.File src, java.io.File dest, boolean override)
      File copy
      static void copyFile​(java.lang.String srcPath, java.lang.String destPath, boolean override)
      File copy
      static long countFiles​(java.io.File dir)
      Count files in a directory
      static long countFiles​(java.io.File dir, java.lang.String pattern)
      Count files in a directory with matching pattern
      static long countFiles​(java.lang.String dir)
      Count files in a directory
      static java.lang.String decode​(java.lang.String name)
      Decode a File name to become a name
      static boolean deleteFileOrDir​(java.io.File file)
      Delete file or dir
      static boolean deleteFileOrDir​(java.io.File file, boolean silent)
      Delete file or dir
      static boolean deleteFileOrDir​(java.lang.String path)
      Delete file or dir
      static boolean deleteFileOrDir​(java.lang.String path, boolean silent)
      Delete file or dir
      static java.lang.String encode​(java.lang.String name)
      Encode a name to become a File name: escape special characters (% / \ * ? " < > |) with %hexa value
      static java.util.List<java.lang.String> getAllFiles​(java.io.File dir)
      List all files of dir
      static java.util.List<java.lang.String> getAllFiles​(java.io.File dir, java.lang.String pattern, boolean sort)
      List all files of dir with optional pattern (returns an empty list if directory does not exists)
      static java.util.List<java.lang.String> getAllFiles​(java.lang.String dir)
      List all files of dir
      static java.util.List<java.lang.String> getAllFiles​(java.lang.String dir, java.lang.String pattern, boolean sort)
      List all files of dir with optional pattern (returns an empty list if directory does not exists)
      static java.lang.String getExtension​(java.io.File file)
      Get file extension from path
      static java.lang.String getExtension​(java.lang.String path)
      Get file extension from path
      static java.lang.String getMIMEType​(java.io.File file)
      Get MIME type from file
      static java.lang.String getMIMEType​(java.lang.String path)
      Get MIME type from file path
      static java.lang.String getName​(java.lang.String path)
      Get file name from path
      static java.io.File getRandomDir​(java.lang.String dir, java.lang.String prefix)
      Get a random directory
      static java.lang.String getRandomDirname​(java.lang.String dir, java.lang.String prefix)
      Get a random directory name
      static java.io.File getRandomFile​(java.lang.String dir, java.lang.String prefix, java.lang.String extension)
      Get a random file
      static java.lang.String getRandomFilename​(java.lang.String dir, java.lang.String prefix, java.lang.String extension)
      Get a random file name
      static boolean isEmpty​(java.io.File dir)
      Check if a directory is empty
      static boolean isEmpty​(java.lang.String dir)
      Check if a directory is empty
      static java.lang.String md5hash​(java.io.File file)
      Hexadeciaml MD5 hash of file or of all files of a directory if directory
      static java.lang.String md5hash​(java.io.File file, java.lang.String pattern)
      Hexadeciaml MD5 hash of file or of all files of a directory if directory
      static boolean mkdir​(java.io.File dir, boolean clean)
      Create directory
      static boolean mkdir​(java.lang.String dir, boolean clean)
      Create directory
      static java.lang.String readFile​(java.io.File file)
      Read file as String
      static java.lang.String readFile​(java.io.File file, java.lang.String encoding)
      Read file as String
      static java.lang.String readFile​(java.lang.String path)
      Read file as String
      static java.lang.String readFile​(java.lang.String path, java.lang.String encoding)
      Read file as String
      static java.lang.String readFileAsBase64​(java.io.File file)
      Read file as base64 string
      static java.lang.String readFileAsBase64​(java.lang.String path)
      Read file as base64 string
      static byte[] readFileAsBytes​(java.io.File file)
      Read file as byte array
      static byte[] readFileAsBytes​(java.lang.String path)
      Read file as byte array
      static java.util.List<java.lang.String> readFileByLine​(byte[] data)
      Read byte array line by line
      static java.util.List<java.lang.String> readFileByLine​(byte[] data, java.lang.String encoding)
      Read byte array line by line
      static java.util.List<java.lang.String> readFileByLine​(java.io.File file)
      Read file line by line
      static java.util.List<java.lang.String> readFileByLine​(java.io.File file, java.lang.String encoding)
      Read file line by line
      static java.util.List<java.lang.String> readFileByLine​(java.io.File file, java.lang.String regex, int maxLines, java.lang.String encoding)
      Read file line by line applying regex filter
      static java.util.List<java.lang.String> readFileByLine​(java.io.InputStream is)
      Read input stream line by line
      static java.util.List<java.lang.String> readFileByLine​(java.io.InputStream is, java.lang.String encoding)
      Read input stream line by line
      static java.util.List<java.lang.String> readFileByLine​(java.io.InputStream is, java.lang.String regex, int maxLines, java.lang.String encoding)
      Read file line by line applying regex filter
      static java.util.List<java.lang.String> readFileByLine​(java.lang.String path)
      Read file line by line
      static java.util.List<java.lang.String> readFileByLine​(java.lang.String path, java.lang.String encoding)
      Read file line by line
      static java.util.List<java.lang.String> readFileByLine​(java.lang.String path, java.lang.String regex, int maxLines, java.lang.String encoding)
      Read file line by line applying regex filter
      static long sizeOfDirectory​(java.io.File path)
      Directory total size in bytes
      static long sizeOfDirectory​(java.lang.String path)
      Directory total size in bytes
      static java.lang.String toValidFilename​(java.lang.String str)
      Get a valid filename from an arbitrary string
      static java.lang.String toValidFilename​(java.lang.String str, boolean removeInvalid, java.lang.String whitespaceSubstitution)
      Get a valid filename from an arbitrary string
      static java.lang.String toValidFilename​(java.lang.String str, java.lang.String replaceString, java.lang.String whitespaceSubstitution)
      Get a valid filename from an arbitrary string
      static boolean writeFile​(java.io.File file, byte[] data)
      Write file with byte array data
      static boolean writeFile​(java.io.File file, byte[] data, boolean append)
      Write file with byte array data
      static boolean writeFile​(java.io.File file, java.lang.String data)
      Write file with string data
      static boolean writeFile​(java.io.File file, java.lang.String data, java.lang.String encoding)
      Write file with string data
      static void writeFile​(java.io.InputStream is, java.io.File f)
      Copy input stream into output stream, flush and close
      static void writeFile​(java.io.InputStream is, java.io.OutputStream out)
      Copy input stream into output stream, flush and close
      static void writeFile​(java.io.InputStream is, java.io.OutputStream out, long limit)
      Copy input stream into output stream, flush and close
      static boolean writeFile​(java.io.OutputStream os, byte[] data)
      Write file with byte array data
      static boolean writeFile​(java.lang.String path, byte[] data)
      Write file with byte array data
      static boolean writeFile​(java.lang.String path, byte[] data, boolean append)
      Write file with byte array data
      static boolean writeFile​(java.lang.String path, java.lang.String data)
      Write file with string data
      static boolean writeFile​(java.lang.String path, java.lang.String data, java.lang.String encoding)
      Write file with string data
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • UPLOAD_SIZE_UNIT

        public static final int UPLOAD_SIZE_UNIT
        MAX_UPLOAD_SIZE unit = 1Mo
        See Also:
        Constant Field Values
    • Method Detail

      • encode

        public static java.lang.String encode​(java.lang.String name)
        Encode a name to become a File name: escape special characters (% / \ * ? " < > |) with %hexa value
        Parameters:
        name - A name
        Returns:
        Encoded file name
      • decode

        public static java.lang.String decode​(java.lang.String name)
        Decode a File name to become a name
        Parameters:
        name - A file name
        Returns:
        Decoded name
      • readFile

        public static java.lang.String readFile​(java.lang.String path)
                                         throws java.io.IOException
        Read file as String
        Parameters:
        path - File path
        Throws:
        java.io.IOException
      • readFile

        public static java.lang.String readFile​(java.lang.String path,
                                                java.lang.String encoding)
                                         throws java.io.IOException
        Read file as String
        Parameters:
        path - File path
        encoding - File encoding
        Throws:
        java.io.IOException
      • readFile

        public static java.lang.String readFile​(java.io.File file)
                                         throws java.io.IOException
        Read file as String
        Parameters:
        file - File
        Throws:
        java.io.IOException
      • readFile

        public static java.lang.String readFile​(java.io.File file,
                                                java.lang.String encoding)
                                         throws java.io.IOException
        Read file as String
        Parameters:
        file - File
        encoding - File encoding
        Throws:
        java.io.IOException
      • readFileAsBytes

        public static byte[] readFileAsBytes​(java.lang.String path)
                                      throws java.io.IOException
        Read file as byte array
        Parameters:
        path - File path
        Throws:
        java.io.IOException
      • readFileAsBytes

        public static byte[] readFileAsBytes​(java.io.File file)
                                      throws java.io.IOException
        Read file as byte array
        Parameters:
        file - File
        Throws:
        java.io.IOException
      • readFileAsBase64

        public static java.lang.String readFileAsBase64​(java.lang.String path)
                                                 throws java.io.IOException
        Read file as base64 string
        Parameters:
        path - File path
        Throws:
        java.io.IOException
      • readFileAsBase64

        public static java.lang.String readFileAsBase64​(java.io.File file)
                                                 throws java.io.IOException
        Read file as base64 string
        Parameters:
        file - File
        Throws:
        java.io.IOException
      • readFileByLine

        public static java.util.List<java.lang.String> readFileByLine​(java.lang.String path)
                                                               throws java.io.IOException
        Read file line by line
        Parameters:
        path - File path
        Throws:
        java.io.IOException
      • readFileByLine

        public static java.util.List<java.lang.String> readFileByLine​(java.lang.String path,
                                                                      java.lang.String encoding)
                                                               throws java.io.IOException
        Read file line by line
        Parameters:
        path - File path
        encoding - File encoding
        Throws:
        java.io.IOException
      • readFileByLine

        public static java.util.List<java.lang.String> readFileByLine​(java.io.File file)
                                                               throws java.io.IOException
        Read file line by line
        Parameters:
        file - File
        Throws:
        java.io.IOException
      • readFileByLine

        public static java.util.List<java.lang.String> readFileByLine​(java.io.File file,
                                                                      java.lang.String encoding)
                                                               throws java.io.IOException
        Read file line by line
        Parameters:
        file - File
        encoding - File encoding
        Throws:
        java.io.IOException
      • readFileByLine

        public static java.util.List<java.lang.String> readFileByLine​(byte[] data)
                                                               throws java.io.IOException
        Read byte array line by line
        Parameters:
        data - Byte array
        Throws:
        java.io.IOException
      • readFileByLine

        public static java.util.List<java.lang.String> readFileByLine​(byte[] data,
                                                                      java.lang.String encoding)
                                                               throws java.io.IOException
        Read byte array line by line
        Parameters:
        data - Byte array
        encoding - File encoding
        Throws:
        java.io.IOException
      • readFileByLine

        public static java.util.List<java.lang.String> readFileByLine​(java.io.InputStream is)
                                                               throws java.io.IOException
        Read input stream line by line
        Parameters:
        is - Input stream
        Throws:
        java.io.IOException
      • readFileByLine

        public static java.util.List<java.lang.String> readFileByLine​(java.io.InputStream is,
                                                                      java.lang.String encoding)
                                                               throws java.io.IOException
        Read input stream line by line
        Parameters:
        is - Input stream
        encoding - File encoding
        Throws:
        java.io.IOException
      • readFileByLine

        public static java.util.List<java.lang.String> readFileByLine​(java.lang.String path,
                                                                      java.lang.String regex,
                                                                      int maxLines,
                                                                      java.lang.String encoding)
                                                               throws java.io.IOException
        Read file line by line applying regex filter
        Parameters:
        path - File path
        regex - Regex to apply (if null or empty no filtering is done)
        maxLines - Maximum nb lines returned (>0 means first lines <0 means last lines)
        encoding - File encoding
        Throws:
        java.io.IOException
      • readFileByLine

        public static java.util.List<java.lang.String> readFileByLine​(java.io.File file,
                                                                      java.lang.String regex,
                                                                      int maxLines,
                                                                      java.lang.String encoding)
                                                               throws java.io.IOException
        Read file line by line applying regex filter
        Parameters:
        file - File
        regex - Regex to apply (if null or empty no filtering is done)
        maxLines - Maximum nb lines returned (0 means all lines, >0 means first lines, <0 means last lines)
        encoding - File encoding
        Throws:
        java.io.IOException
      • readFileByLine

        public static java.util.List<java.lang.String> readFileByLine​(java.io.InputStream is,
                                                                      java.lang.String regex,
                                                                      int maxLines,
                                                                      java.lang.String encoding)
                                                               throws java.io.IOException
        Read file line by line applying regex filter
        Parameters:
        is - Input stream
        regex - Regex to apply (if null or empty no filtering is done)
        maxLines - Maximum nb lines returned (0 means all lines, >0 means first lines, <0 means last lines)
        encoding - File encoding
        Throws:
        java.io.IOException
      • writeFile

        public static boolean writeFile​(java.lang.String path,
                                        java.lang.String data)
                                 throws java.io.IOException
        Write file with string data
        Parameters:
        path - File path
        data - String data
        Returns:
        true if file generation is OK
        Throws:
        java.io.IOException
      • writeFile

        public static boolean writeFile​(java.lang.String path,
                                        java.lang.String data,
                                        java.lang.String encoding)
                                 throws java.io.IOException
        Write file with string data
        Parameters:
        path - File path
        data - String data
        encoding - File encoding
        Returns:
        true if file generation is OK
        Throws:
        java.io.IOException
      • writeFile

        public static boolean writeFile​(java.io.File file,
                                        java.lang.String data)
                                 throws java.io.IOException
        Write file with string data
        Parameters:
        file - File
        data - String data
        Returns:
        true if file generation is OK
        Throws:
        java.io.IOException
      • writeFile

        public static boolean writeFile​(java.io.File file,
                                        java.lang.String data,
                                        java.lang.String encoding)
                                 throws java.io.IOException
        Write file with string data
        Parameters:
        file - File
        data - String data
        encoding - File encoding
        Returns:
        true if file generation is OK
        Throws:
        java.io.IOException
      • writeFile

        public static boolean writeFile​(java.lang.String path,
                                        byte[] data)
                                 throws java.io.IOException
        Write file with byte array data
        Parameters:
        path - File path
        data - Byte array data
        Returns:
        true if file generation is OK
        Throws:
        java.io.IOException
      • writeFile

        public static boolean writeFile​(java.lang.String path,
                                        byte[] data,
                                        boolean append)
                                 throws java.io.IOException
        Write file with byte array data
        Parameters:
        path - File path
        data - Byte array data
        append - Append to file?
        Returns:
        true if file generation is OK
        Throws:
        java.io.IOException
      • writeFile

        public static boolean writeFile​(java.io.File file,
                                        byte[] data)
                                 throws java.io.IOException
        Write file with byte array data
        Parameters:
        file - File
        data - Byte array data
        Returns:
        true if file generation is OK
        Throws:
        java.io.IOException
      • writeFile

        public static boolean writeFile​(java.io.File file,
                                        byte[] data,
                                        boolean append)
                                 throws java.io.IOException
        Write file with byte array data
        Parameters:
        file - File
        data - Byte array data
        append - Append to file?
        Returns:
        true if file generation is OK
        Throws:
        java.io.IOException
      • writeFile

        public static boolean writeFile​(java.io.OutputStream os,
                                        byte[] data)
                                 throws java.io.IOException
        Write file with byte array data
        Parameters:
        os - Output stream
        data - Byte array data
        Returns:
        true if file generation is OK
        Throws:
        java.io.IOException
      • copyFile

        public static void copyFile​(java.io.File src,
                                    java.io.File dest,
                                    boolean override)
                             throws java.io.IOException
        File copy
        Parameters:
        src - Source file
        dest - Destination file
        override - True to override if exists
        Throws:
        java.io.IOException
      • copyFile

        public static void copyFile​(java.lang.String srcPath,
                                    java.lang.String destPath,
                                    boolean override)
                             throws java.io.IOException
        File copy
        Parameters:
        srcPath - Source file path
        destPath - Destination file path
        override - True to override if exists
        Throws:
        java.io.IOException
      • writeFile

        public static void writeFile​(java.io.InputStream is,
                                     java.io.File f)
                              throws java.io.IOException
        Copy input stream into output stream, flush and close
        Parameters:
        is - input stream
        f - output file (override)
        Throws:
        java.io.FileNotFoundException
        java.io.IOException
      • writeFile

        public static void writeFile​(java.io.InputStream is,
                                     java.io.OutputStream out)
        Copy input stream into output stream, flush and close
        Parameters:
        is - input stream
        out - output stream
      • concatFiles

        public static void concatFiles​(java.io.InputStream[] is,
                                       java.io.OutputStream out)
        Concat all input stream into output stream, flush and close
        Parameters:
        is - input streams
        out - output stream
      • writeFile

        public static void writeFile​(java.io.InputStream is,
                                     java.io.OutputStream out,
                                     long limit)
                              throws FileSizeException
        Copy input stream into output stream, flush and close
        Parameters:
        is - input stream
        out - output stream
        limit - max size in Mo
        Throws:
        FileSizeException
      • deleteFileOrDir

        public static boolean deleteFileOrDir​(java.lang.String path)
        Delete file or dir
        Parameters:
        path - Path
      • deleteFileOrDir

        public static boolean deleteFileOrDir​(java.lang.String path,
                                              boolean silent)
        Delete file or dir
        Parameters:
        path - Path
        silent - Don't log error
      • deleteFileOrDir

        public static boolean deleteFileOrDir​(java.io.File file)
        Delete file or dir
        Parameters:
        file - File
      • deleteFileOrDir

        public static boolean deleteFileOrDir​(java.io.File file,
                                              boolean silent)
        Delete file or dir
        Parameters:
        file - File
        silent - Don't log error
      • cleanDir

        public static boolean cleanDir​(java.lang.String path)
        Clean dir content
        Parameters:
        path - Dir path
      • cleanDir

        public static boolean cleanDir​(java.io.File file)
        Clean dir content
        Parameters:
        file - Dir file
      • cleanDir

        public static boolean cleanDir​(java.lang.String path,
                                       boolean silent)
        Clean dir content
        Parameters:
        path - Dir path
        silent - Don't log error
      • cleanDir

        public static boolean cleanDir​(java.io.File file,
                                       boolean silent)
        Clean dir content
        Parameters:
        file - Dir file
        silent - Don't log error
      • mkdir

        public static boolean mkdir​(java.io.File dir,
                                    boolean clean)
        Create directory
        Parameters:
        dir - Dir
        clean - Delete dir content (if it exists)
        Returns:
        True if both create and optional cleaning were successful
      • mkdir

        public static boolean mkdir​(java.lang.String dir,
                                    boolean clean)
        Create directory
        Parameters:
        dir - Dir
        clean - Delete content (if it exists)
        Returns:
        True if both create and optional cleaning were successful
      • getName

        public static java.lang.String getName​(java.lang.String path)
        Get file name from path
        Parameters:
        path - Path
        Returns:
        File name
      • getExtension

        public static java.lang.String getExtension​(java.lang.String path)
        Get file extension from path
        Parameters:
        path - Path
        Returns:
        File extension (lower case)
      • getExtension

        public static java.lang.String getExtension​(java.io.File file)
        Get file extension from path
        Parameters:
        file - Path
        Returns:
        File extension (lower case)
      • sizeOfDirectory

        public static long sizeOfDirectory​(java.lang.String path)
        Directory total size in bytes
        Parameters:
        path - Start path
        Returns:
        Total size in bytes
      • sizeOfDirectory

        public static long sizeOfDirectory​(java.io.File path)
        Directory total size in bytes
        Parameters:
        path - Start path file
        Returns:
        Total size in bytes
      • getAllFiles

        public static java.util.List<java.lang.String> getAllFiles​(java.lang.String dir)
                                                            throws java.io.IOException
        List all files of dir
        Parameters:
        dir - Directory
        Throws:
        java.io.IOException
      • getAllFiles

        public static java.util.List<java.lang.String> getAllFiles​(java.io.File dir)
                                                            throws java.io.IOException
        List all files of dir
        Parameters:
        dir - Directory
        Throws:
        java.io.IOException
      • getAllFiles

        public static java.util.List<java.lang.String> getAllFiles​(java.lang.String dir,
                                                                   java.lang.String pattern,
                                                                   boolean sort)
                                                            throws java.io.IOException
        List all files of dir with optional pattern (returns an empty list if directory does not exists)
        Parameters:
        dir - Directory
        pattern - Optional regular expression pattern to match (e.g. "^.*\\.txt$")
        sort - Sort list?
        Throws:
        java.io.IOException
      • getAllFiles

        public static java.util.List<java.lang.String> getAllFiles​(java.io.File dir,
                                                                   java.lang.String pattern,
                                                                   boolean sort)
                                                            throws java.io.IOException
        List all files of dir with optional pattern (returns an empty list if directory does not exists)
        Parameters:
        dir - Directory
        pattern - Optional regular expression pattern to match (e.g. "^.*\\.txt$")
        sort - Sort list?
        Throws:
        java.io.IOException
      • getMIMEType

        public static java.lang.String getMIMEType​(java.lang.String path)
        Get MIME type from file path
        Parameters:
        path - Path
      • getMIMEType

        public static java.lang.String getMIMEType​(java.io.File file)
        Get MIME type from file
        Parameters:
        file - File
      • isEmpty

        public static boolean isEmpty​(java.lang.String dir)
        Check if a directory is empty
        Parameters:
        dir - Directory path (if relative, it is considered relative to project directory
        Returns:
        true if directory exists, is a directory and is empty, false otherwise
      • isEmpty

        public static boolean isEmpty​(java.io.File dir)
        Check if a directory is empty
        Parameters:
        dir - Directory path (if relative, it is considered relative to project directory
        Returns:
        true if directory exists, is a directory and is empty, false otherwise
      • md5hash

        public static java.lang.String md5hash​(java.io.File file)
                                        throws java.io.IOException
        Hexadeciaml MD5 hash of file or of all files of a directory if directory
        Parameters:
        file - File or directory
        Returns:
        Hash string
        Throws:
        java.io.IOException
      • md5hash

        public static java.lang.String md5hash​(java.io.File file,
                                               java.lang.String pattern)
                                        throws java.io.IOException
        Hexadeciaml MD5 hash of file or of all files of a directory if directory
        Parameters:
        file - File or directory
        pattern - Optional file name regex pattern (e.g. .*\\.txt)
        Returns:
        Hash string
        Throws:
        java.io.IOException
      • getRandomDirname

        public static java.lang.String getRandomDirname​(java.lang.String dir,
                                                        java.lang.String prefix)
        Get a random directory name
        Parameters:
        dir - Base directory
        prefix - Optional prefix
        Returns:
        Random directory name
      • getRandomDir

        public static java.io.File getRandomDir​(java.lang.String dir,
                                                java.lang.String prefix)
        Get a random directory
        Parameters:
        dir - Base directory
        prefix - Optional prefix
        Returns:
        Random directory
      • getRandomFilename

        public static java.lang.String getRandomFilename​(java.lang.String dir,
                                                         java.lang.String prefix,
                                                         java.lang.String extension)
        Get a random file name
        Parameters:
        dir - Base directory
        prefix - Optional prefix
        extension - Optional extension
        Returns:
        Random file name
      • getRandomFile

        public static java.io.File getRandomFile​(java.lang.String dir,
                                                 java.lang.String prefix,
                                                 java.lang.String extension)
        Get a random file
        Parameters:
        dir - Base directory
        prefix - Optional prefix
        extension - Optional extension
        Returns:
        Random file
      • toValidFilename

        public static java.lang.String toValidFilename​(java.lang.String str)
        Get a valid filename from an arbitrary string
        Parameters:
        str - String
        Returns:
        Filename
      • toValidFilename

        public static java.lang.String toValidFilename​(java.lang.String str,
                                                       boolean removeInvalid,
                                                       java.lang.String whitespaceSubstitution)
        Get a valid filename from an arbitrary string
        Parameters:
        str - String
        removeInvalid - Remove invalid characters? false means replacing them by a substitution string like _cr_ for carriage return
        whitespaceSubstitution - Whitespaces substitution string null means replacing them by underscores, note that leading/trailing whithespaces are always removed
        Returns:
        Filename
      • toValidFilename

        public static java.lang.String toValidFilename​(java.lang.String str,
                                                       java.lang.String replaceString,
                                                       java.lang.String whitespaceSubstitution)
        Get a valid filename from an arbitrary string
        Parameters:
        str - String
        replaceString - optional string to replace all invalid characters (null will just remove the characters)
        whitespaceSubstitution - optional whitespaces substitution (null keeps the whitespaces)
        Returns:
        Filename without invalid characters
      • countFiles

        public static long countFiles​(java.lang.String dir)
                               throws java.io.IOException
        Count files in a directory
        Parameters:
        dir - Directory path return Number of files in specified directory
        Throws:
        java.io.IOException
      • countFiles

        public static long countFiles​(java.io.File dir)
                               throws java.io.IOException
        Count files in a directory
        Parameters:
        dir - Directory file return Number of files in specified directory
        Throws:
        java.io.IOException
      • countFiles

        public static long countFiles​(java.io.File dir,
                                      java.lang.String pattern)
                               throws java.io.IOException
        Count files in a directory with matching pattern
        Parameters:
        dir - Directory file
        pattern - Regular expression for file name matching (e.g. "^.*\\.txt$") or null return Number of files in specified directory
        Throws:
        java.io.IOException