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 Summary
Constructors Constructor Description FileUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static String
computeHashForDirectory(Path targetDirectory)
static String
computeHashForFile(Path targetFile)
static FilenameFilter
createExtensionFilenameFilter(String extension)
Creates a file filter which only lets files through which have the given extension.static String
createValidFilename(String name)
Creates a valid filename for the given source name.static boolean
deleteTree(File tree)
Recursively deletes the directorytree
.static File
ensureExtension(File file, String extension)
Returns a file with the given extension.static String
ensureExtension(String path, String extension)
Returns a file with the given extension.static URI
ensureJarURI(URI uri)
Ensures that the given URI is a path into a jar file.static File
exchangeExtension(File file, String extension)
Returns a file with the given new extension.static String
exchangeExtension(String path, String extension)
Returns the file string with the given new extension.static String
getDisplayText(File file, int maxLength)
static String
getExtension(File file)
Gets the extension (which always includes a leading dot) of a file.static String
getExtension(String path)
Gets the extension of a file path.static int
getExtensionDotPos(String path)
static URL
getFileAsUrl(File file)
Gets a normalized URL representation for the given file.static String
getFilenameFromPath(String path)
Retrieves the file name from a complete path.static String
getFilenameWithoutExtension(File file)
Gets the filename without its extension from the given file path.static String
getFilenameWithoutExtension(String filename)
Gets the filename without its extension from the given filename.static Path
getPathFromURI(URI uri)
static URI
getRelativeUri(URI rootURI, File file)
static File
getUrlAsFile(URL url)
Inverse ofgetFileAsUrl(java.io.File)
.static String[]
listFilePathsWithExtension(File dir, String extension)
Lists the filenames with the specified extension contained in the given directory.static File[]
listFilesWithExtension(File dir, String extension)
Lists the files with the specified extension contained in the given directory.static String
readText(File file)
static String
readText(Reader reader)
static File
toFile(Path path)
Converts the given path object into a file object.
-
-
-
Method Detail
-
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.
-
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 extensionextension
- 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 extensionextension
- 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 extensionextension
- 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 extensionextension
- 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.
-
listFilePathsWithExtension
public static String[] listFilePathsWithExtension(File dir, String extension)
Lists the filenames with the specified extension contained in the given directory.- See Also:
File.list()
,File.list(java.io.FilenameFilter)
-
createExtensionFilenameFilter
public static FilenameFilter createExtensionFilenameFilter(String extension)
Creates a file filter which only lets files through which have the given extension.- See Also:
FilenameFilter
-
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 benull
-
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 theFile.toURI()
method, and then converting the URI into a URL via theURI.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
Inverse ofgetFileAsUrl(java.io.File)
.- Parameters:
url
- the URL- Returns:
- the file
- Throws:
URISyntaxException
-
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 directorytree
.- Parameters:
tree
- directory to be deleted- Returns:
true
if and only if the file or directory is successfully deleted;false
otherwise
-
getPathFromURI
public static Path getPathFromURI(URI uri) throws IOException
- Parameters:
uri
- TheURI
to create thePath
from.- Returns:
- The converted
Path
. - Throws:
IOException
- If thePath
could not be createdIllegalArgumentException
- IfURI
is not valid
-
toFile
public static File toFile(Path path)
Converts the given path object into a file object. If opposite toPath.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 aPath
-
computeHashForFile
public static String computeHashForFile(Path targetFile) throws IOException
- Throws:
IOException
-
computeHashForDirectory
public static String computeHashForDirectory(Path targetDirectory) throws IOException
- Throws:
IOException
-
-