Class FileUtils

java.lang.Object
be.panako.util.FileUtils

public final class FileUtils extends Object
An utility class for file interaction.
  • Field Details

  • Method Details

    • temporaryDirectory

      public static String temporaryDirectory()
    • expandHomeDir

      public static String expandHomeDir(String dir)
    • isFileLocked

      public static boolean isFileLocked(String fileName)
    • createLock

      public static boolean createLock(String fileName)
    • getLockFileName

      public static String getLockFileName(String fileName)
    • combine

      public static String combine(String... path)
      Joins path elements using the systems path separator. e.g. "/tmp" and "com.random.test.wav" combined together should yield /tmp/com.random.test.wav on UNIX.
      Parameters:
      path - The path parts part.
      Returns:
      Each element from path joined by the systems path separator.
    • runtimeDirectory

      public static String runtimeDirectory()
      Returns:
      The path where the program is executed.
    • writeFile

      public static void writeFile(String contents, String name)
      Writes a file to disk. Uses the string contents as content. Failures are logged.
      Parameters:
      contents - The contents of the file.
      name - The name of the file to create.
    • appendFile

      public static void appendFile(String contents, String name)
      Appends a string to a file on disk. Fails silently.
      Parameters:
      contents - The contents of the file.
      name - The name of the file to create.
    • readFile

      public static String readFile(String name)
      Reads the contents of a file.
      Parameters:
      name - the name of the file to read
      Returns:
      the contents of the file if successful, an empty string otherwise.
    • readFileFromJar

      public static String readFileFromJar(String path)
      Reads the contents of a file in a jar.
      Parameters:
      path - the path to read e.g. /package/name/here/help.html
      Returns:
      the contents of the file when successful, an empty string otherwise.
    • copyFileFromJar

      public static void copyFileFromJar(String source, String target)
      Copy a file from a jar.
      Parameters:
      source - The path to read e.g. /package/name/here/help.html
      target - The target to save the file to.
    • readColumnFromCSVData

      public static List<String> readColumnFromCSVData(List<String[]> data, int columnIndex, FileUtils.RowFilter filter)
    • glob

      public static List<String> glob(String directory, String pattern, boolean recursive)

      Return a list of files in directory that satisfy pattern. Pattern should be a valid regular expression not a 'unix glob pattern' so in stead of *.wav you could use .*\.wav

      E.g. in a directory home with the files com.test.txt, blaat.wav and foobar.wav the pattern .*\.wav matches blaat.wav and foobar.wav

      Parameters:
      directory - A readable directory.
      pattern - A valid regular expression.
      recursive - A boolean defining if directories should be traversed recursively.
      Returns:
      a list of filenames matching the pattern for directory.
      Throws:
      Error - an error is thrown if the directory is not ... a directory.
      PatternSyntaxException - Unchecked exception thrown to indicate a syntax error in a regular-expression pattern.
    • extension

      public static String extension(String fileName)
      Return the extension of a file.
      Parameters:
      fileName - the file to get the extension for
      Returns:
      the extension. E.g. TXT or JPEG.
    • basename

      public static String basename(String fileName)
      Returns the filename without path and without extension.
      Parameters:
      fileName - The name of the file.
      Returns:
      the file name without extension and path
    • path

      public static String path(String fileName)
      Returns the path for a file.
      path("/home/user/random.jpg") == "/home/user"
      Uses the correct pathSeparator depending on the operating system. On windows c:/com.test/ is not c:\com.test\
      Parameters:
      fileName - The name of the file using correct path separators.
      Returns:
      The path of the file.
    • exists

      public static boolean exists(String fileName)
      Checks if a file exists.
      Parameters:
      fileName - the name of the file to check.
      Returns:
      true if and only if the file or directory denoted by this abstract pathname exists; false otherwise
    • mkdirs

      public static boolean mkdirs(String path)
      Creates a directory and parent directories if needed.
      Parameters:
      path - the path of the directory to create
      Returns:
      true if the directory was created (possibly with parent directories) , false otherwise
    • cp

      public static void cp(String source, String target)
      Copy from source to target.
      Parameters:
      source - the source file.
      target - the target file.
    • rm

      public static boolean rm(String fileName)
      Removes a file from disk.
      Parameters:
      fileName - the file to remove
      Returns:
      true if and only if the file or directory is successfully deleted; false otherwise
    • isDirectory

      public static boolean isDirectory(String inputFile)
      Tests whether the file denoted by this abstract pathname is a directory.
      Parameters:
      inputFile - A pathname string.
      Returns:
      true if and only if the file denoted by this abstract pathname exists and is a directory; false otherwise.
    • getIdentifier

      public static int getIdentifier(String resource)
      Returns an identifier for a resource. It is either based on the hashCode of a string or on the name of the resource. If a resource is called e.g. 1855.mp3, the number part is used as identifier.
      Parameters:
      resource - The resource to get an identifier for.
      Returns:
      an identifier.