Class FileUtils

java.lang.Object
org.esa.snap.core.util.io.FileUtils

public class FileUtils extends Object
This class provides additional functionality in handling with files. All methods in this class dealing with extensions, expect that an extension is the last part of a file name starting with the dot '.' character.
Version:
$Revision$ $Date$
  • Constructor Details

    • FileUtils

      public FileUtils()
  • Method Details

    • getExtension

      public static String getExtension(File file)
      Gets the extension (which always includes a leading dot) of a file.
      Parameters:
      file - the file whose extension is to be extracted.
      Returns:
      the extension string which always includes a leading dot. Returns null if the file has no extension.
    • getExtension

      public static String getExtension(String path)
      Gets the extension of a file path.
      Parameters:
      path - the file path whose extension is to be extracted.
      Returns:
      the extension string which always includes a leading dot. Returns null if the file path has no extension.
    • getFilenameWithoutExtension

      public static String getFilenameWithoutExtension(File file)
      Gets the filename without its extension from the given file path.
      Parameters:
      file - the file whose filename is to be extracted.
      Returns:
      the filename without its extension.
    • getFilenameWithoutExtension

      public static String getFilenameWithoutExtension(String filename)
      Gets the filename without its extension from the given filename.
      Parameters:
      filename - the name of the file whose filename is to be extracted.
      Returns:
      the filename without its extension.
    • getFilenameWithoutAnyExtensions

      public static String getFilenameWithoutAnyExtensions(String filename)
      Removes all extensions from a fiven file name
      Parameters:
      filename - the name of the file whose filename is to be extracted.
      Returns:
      the filename without its extensions.
    • exchangeExtension

      public static String exchangeExtension(String path, String extension)
      Returns the file string with the given new extension. If the given file string have no extension, the given extension will be added.

      Example1:

       "tie.point.grids\tpg1.hdr" 
      results to
       "tie.point.grids\tpg1.raw" 

      Example2:

       "tie.point.grids\tpg1" 
      results to
       "tie.point.grids\tpg1.raw" 
      Parameters:
      path - the string to change the extension
      extension - the new file extension including a leading dot (e.g. ".raw").
      Throws:
      IllegalArgumentException - if one of the given strings are null or empty.
    • exchangeExtension

      public static File exchangeExtension(File file, String extension)
      Returns a file with the given new extension. If the given file have no extension, the given extension will be added.

      Example1:

       "tie.point.grids\tpg1.hdr" 
      results to
       "tie.point.grids\tpg1.raw" 

      Example2:

       "tie.point.grids\tpg1" 
      results to
       "tie.point.grids\tpg1.raw" 
      Parameters:
      file - the file to change the extension
      extension - the new file extension including a leading dot (e.g. ".raw").
      Throws:
      IllegalArgumentException - if one of the parameter strings are null or empty.
    • ensureExtension

      public static String ensureExtension(String path, String extension)
      Returns a file with the given extension. If the given path have no extension or the extension are not equal to the given extension, the given extension will be added.

      Example1: param path = example.dim param extension = ".dim"

       "example.dim" 
      results to
       "example.dim" 

      Example2: param path = example param extension = ".dim"

       "example" 
      results to
       "example.dim" 

      Example3: param path = example.lem param extension = ".dim"

       "example.lem" 
      results to
       "example.lem.dim" 
      Parameters:
      path - the string to ensure the extension
      extension - the new file extension including a leading dot (e.g. ".raw").
      Throws:
      IllegalArgumentException - if one of the given strings are null or empty.
    • ensureExtension

      public static File ensureExtension(File file, String extension)
      Returns a file with the given extension. If the given file has no extension or the extension is not equal to the given extension, the given extension will be added.

      Example1: param file = example.dim param extension = ".dim"

       "example.dim" 
      results to
       "example.dim" 

      Example2: param file = example param extension = ".dim"

       "example" 
      results to
       "example.dim" 

      Example3: param file = example.lem param extension = ".dim"

       "example.lem" 
      results to
       "example.lem.dim" 
      Parameters:
      file - the file to ensure the extension
      extension - the new file extension including a leading dot (e.g. ".raw").
      Throws:
      IllegalArgumentException - if one of the parameter strings are null or empty.
    • getExtensionDotPos

      public static int getExtensionDotPos(String path)
    • getFilenameFromPath

      public static String getFilenameFromPath(String path)
      Retrieves the file name from a complete path. example: "c:/testData/MERIS/meris_test.N1" will be converted to "meris_test.N1"
    • listFilesWithExtension

      public static File[] listFilesWithExtension(File dir, String extension)
      Lists the files with the specified extension contained in the given directory.
      See Also:
    • listFilePathsWithExtension

      public static String[] listFilePathsWithExtension(File dir, String extension)
      Lists the filenames with the specified extension contained in the given directory.
      See Also:
    • createExtensionFilenameFilter

      public static FilenameFilter createExtensionFilenameFilter(String extension)
      Creates a file filter which only lets files through which have the given extension.
      See Also:
    • createValidFilename

      public static String createValidFilename(String name)
      Creates a valid filename for the given source name. The method returns a string which is the given name where each occurence of a character which is not a letter, a digit or one of '_', '-', '.' is replaced by an underscore. The returned string always has the same length as the source name.
      Parameters:
      name - the source name, must not be null
    • getFileAsUrl

      public static URL getFileAsUrl(File file) throws MalformedURLException
      Gets a normalized URL representation for the given file.

      Unlike the File.toURL() method, this method automatically escapes characters that are illegal in URLs. It converts the given abstract pathname into a URL by first converting it into a URI, via the File.toURI() method, and then converting the URI into a URL via the URI.toURL method. .

      See also the 'Usage Note' of the File.toURL() API documentation.

      Parameters:
      file - the file
      Returns:
      a normalized URL representation
      Throws:
      MalformedURLException
    • getUrlAsFile

      public static File getUrlAsFile(URL url) throws URISyntaxException
      Parameters:
      url - the URL
      Returns:
      the file
      Throws:
      URISyntaxException
    • getDisplayText

      public static String getDisplayText(File file, int maxLength)
    • readText

      public static String readText(File file) throws IOException
      Throws:
      IOException
    • readText

      public static String readText(Reader reader) throws IOException
      Throws:
      IOException
    • deleteTree

      public static boolean deleteTree(File tree)
      Recursively deletes the directory tree.
      Parameters:
      tree - directory to be deleted
      Returns:
      true if and only if the file or directory is successfully deleted; false otherwise
    • getRelativeUri

      public static URI getRelativeUri(URI rootURI, File file)
    • getPathFromURI

      public static Path getPathFromURI(URI uri) throws IOException
      Tries to create a Path from the given URI.
      Parameters:
      uri - The URI to create the Path from.
      Returns:
      The converted Path.
      Throws:
      IOException - If the Path could not be created
      IllegalArgumentException - If URI is not valid
    • toFile

      public static File toFile(Path path)
      Converts the given path object into a file object. If opposite to Path.toFile(), the method unwraps paths that have a "jar" URI.
      Parameters:
      path - The path.
      Returns:
      The file object.
    • ensureJarURI

      public static URI ensureJarURI(URI uri) throws IOException
      Ensures that the given URI is a path into a jar file. If the given URI points to a file and ends with '.jar' and starts with 'file:' the given URI is changed. 'jar:' is prepended and '!/' appended to the uri.
      Parameters:
      uri - the uri which shall be corrected
      Returns:
      the corrected URI
      Throws:
      IOException - If the URI could not be converted into a Path
    • computeHashForFile

      public static String computeHashForFile(Path targetFile) throws IOException
      Throws:
      IOException
    • computeHashForDirectory

      public static String computeHashForDirectory(Path targetDirectory) throws IOException
      Throws:
      IOException