org.codehaus.plexus.util
public class FileUtils extends Object
Methods exist to retrieve the components of a typical file path. For example
/www/hosted/mysite/index.html
, can be broken into:
/www/hosted/mysite/
-- retrievable through {@link #getPath}index.html
-- retrievable through {@link #removePath}/www/hosted/mysite/index
-- retrievable through {@link #removeExtension}html
-- retrievable through {@link #getExtension}There are methods to create a {@link #toFile File from a URL}, copy a {@link #copyFileToDirectory File to a directory}, copy a {@link #copyFile File to another File}, copy a {@link #copyURLToFile URL's contents to a File}, as well as methods to {@link #deleteDirectory(File) delete} and {@link #cleanDirectory(File) clean} a directory.
Common {@link java.io.File} manipulation routines. Taken from the commons-utils repo. Also code from Alexandria's FileUtils. And from Avalon Excalibur's IO. And from Ant.Version: $Id: FileUtils.java 3082 2006-03-22 07:45:23Z jtolentino $
Nested Class Summary | |
---|---|
abstract static class | FileUtils.FilterWrapper |
Field Summary | |
---|---|
static String | FS |
static int | ONE_GB
The number of bytes in a gigabyte. |
static int | ONE_KB
The number of bytes in a kilobyte. |
static int | ONE_MB
The number of bytes in a megabyte. |
Method Summary | |
---|---|
static String | basename(String filename)
Returns the filename portion of a file specification string.
|
static String | basename(String filename, String suffix)
Returns the filename portion of a file specification string.
|
static Vector | blendFilesToVector(Vector v, String[] files)
Private hepler method for getFilesFromExtension() |
static String | byteCountToDisplaySize(int size)
Returns a human-readable version of the file size (original is in
bytes).
|
static String | catPath(String lookupPath, String path)
Will concatenate 2 paths. |
static void | cleanDirectory(String directory)
Clean a directory without deleting it. |
static void | cleanDirectory(File directory)
Clean a directory without deleting it. |
static void | cleanDirectoryOnExit(File directory)
Clean a directory without deleting it. |
static boolean | contentEquals(File file1, File file2)
Compare the contents of two files to determine if they are equal or not.
|
static void | copyDirectory(File sourceDirectory, File destinationDirectory) |
static void | copyDirectory(File sourceDirectory, File destinationDirectory, String includes, String excludes) |
static void | copyDirectoryStructure(File sourceDirectory, File destinationDirectory)
Copies a entire directory structure.
|
static void | copyDirectoryStructureIfModified(File sourceDirectory, File destinationDirectory)
Copies an entire directory structure but only source files with timestamp later than the destinations'.
|
static void | copyFile(File source, File destination)
Copy file from source to destination. |
static void | copyFile(File from, File to, String encoding, FileUtils.FilterWrapper[] wrappers) |
static void | copyFileIfModified(File source, File destination)
Copy file from source to destination only if source timestamp is later than the destination timestamp.
|
static void | copyFileToDirectory(String source, String destinationDirectory)
Copy file from source to destination. |
static void | copyFileToDirectory(File source, File destinationDirectory)
Copy file from source to destination. |
static void | copyFileToDirectoryIfModified(String source, String destinationDirectory)
Copy file from source to destination only if source is newer than the target file.
|
static void | copyFileToDirectoryIfModified(File source, File destinationDirectory)
Copy file from source to destination only if source is newer than the target file.
|
static void | copyURLToFile(URL source, File destination)
Copies bytes from the URL source to a file destination .
|
static File | createTempFile(String prefix, String suffix, File parentDir)
Create a temporary file in a given directory.
|
static void | deleteDirectory(String directory)
Recursively delete a directory. |
static void | deleteDirectory(File directory)
Recursively delete a directory. |
static void | deleteDirectoryOnExit(File directory)
Recursively schedule directory for deletion on JVM exit. |
static boolean | deleteFile(File file)
Accommodate Windows bug encountered in both Sun and IBM JDKs.
|
static String | dirname(String filename)
Returns the directory path portion of a file specification string.
|
static String | extension(String filename)
Returns the extension portion of a file specification string.
|
static void | fileAppend(String fileName, String data)
Appends data to a file. |
static void | fileDelete(String fileName)
Deletes a file.
|
static boolean | fileExists(String fileName)
Check if a file exits.
|
static String | filename(String filename)
Returns the filename portion of a file specification string. |
static String | fileRead(String file) |
static String | fileRead(File file) |
static void | fileWrite(String fileName, String data)
Writes data to a file. |
static void | forceDelete(String file)
Delete a file. |
static void | forceDelete(File file)
Delete a file. |
static void | forceDeleteOnExit(File file)
Schedule a file to be deleted when JVM exits.
|
static void | forceMkdir(File file)
Make a directory. |
static String[] | getDefaultExcludes() |
static List | getDefaultExcludesAsList() |
static String | getExtension(String filename)
Get extension from filename.
ie
foo.txt --> "txt" a\b\c.jpg --> "jpg" a\b\c --> "" |
static File | getFile(String fileName)
Creates a file handle.
|
static List | getFileNames(File directory, String includes, String excludes, boolean includeBasedir)
Return a list of files as String depending options.
|
static List | getFileNames(File directory, String includes, String excludes, boolean includeBasedir, boolean isCaseSensitive)
Return a list of files as String depending options.
|
static List | getFiles(File directory, String includes, String excludes) |
static List | getFiles(File directory, String includes, String excludes, boolean includeBasedir) |
static String[] | getFilesFromExtension(String directory, String[] extensions)
Given a directory and an array of extensions return an array of compliant files.
|
static String | getPath(String filepath)
Get path from filename. |
static String | getPath(String filepath, char fileSeparatorChar)
Get path from filename.
ie.
|
static boolean | isValidFile(String file, String[] extensions)
Checks to see if a file is of a particular type(s).
|
static void | mkdir(String dir)
Simple way to make a directory |
static String | normalize(String path)
Normalize a path.
|
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 |
static String | removePath(String filepath)
Remove path from filename. |
static String | removePath(String filepath, char fileSeparatorChar)
Remove path from filename.
ie.
|
static void | rename(File from, File to)
Renames a file, even if that involves crossing file system boundaries.
|
static File | resolveFile(File baseFile, String filename)
Resolve a file filename to it's canonical form. |
static long | sizeOfDirectory(String directory)
Recursively count size of a directory.
|
static long | sizeOfDirectory(File directory)
Recursively count size of a directory.
|
static File | toFile(URL url)
Convert from a URL to a File . |
static URL[] | toURLs(File[] files)
Convert the array of Files into a list of URLs.
|
static boolean | waitFor(String fileName, int seconds)
Waits for NFS to propagate a file creation, imposing a timeout.
|
static boolean | waitFor(File file, int seconds) |
Returns: The filename string without extension.
Parameters: size The number of bytes.
Returns: A human-readable display value (includes units).
..
will be
properly handled.
Eg.,
/a/b/c
+ d
= /a/b/d
/a/b/c
+ ../d
= /a/d
Returns: The concatenated paths, or null if error occurs
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
sourceDirectory
must exists.
Parameters: sourceDirectory destinationDirectory
Throws: IOException
sourceDirectory
must exists.
Parameters: sourceDirectory destinationDirectory
Throws: IOException
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.
java.io.FileNotFoundException if destination
is a directory
(use {@link #copyFileToDirectory}).
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.
java.io.FileNotFoundException if destination
is a directory
(use {@link #copyFileToDirectory}).
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: java.io.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.
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: java.io.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.
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: java.io.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.
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: java.io.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.
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 openeddestination
cannot be written to
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 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.
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.
Returns: The directory portion excluding the ending file separator.
Parameters: fileName The name of the file to write. data The content to write to the file.
Parameters: fileName The name of the file to delete.
Parameters: fileName The name of the file to check.
Returns: true if file exists.
Returns: The filename string with extension.
Parameters: fileName The name of the file to write. data The content to write to the file.
foo.txt --> "txt" a\b\c.jpg --> "jpg" a\b\c --> ""
Parameters: filename the filename
Returns: the extension of filename or "" if none
Parameters: fileName The name of the file.
Returns: A File
manager.
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
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
dirname
.
ie.
a/b/c.txt --> a/b a.txt --> ""
Parameters: filepath the filepath
Returns: the filename minus path
a/b/c.txt --> a/b a.txt --> ""
Parameters: filepath the filepath
Returns: the filename minus path
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.
foo.txt --> foo a\b\c.jpg --> a\b\c a\b\c --> a\b\c
Parameters: filename the filename
Returns: the filename minus extension
basename
ie.
a/b/c.txt --> c.txt a.txt --> a.txt
Parameters: filepath the filepath
Returns: the filename minus path
a/b/c.txt --> c.txt a.txt --> a.txt
Parameters: filepath the filepath
Returns: the filename minus path
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.
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
.
Returns: size of directory in bytes.
Returns: size of directory in bytes.
URL
to a File
.Parameters: url File URL.
Returns: The equivalent File
object, or null
if the URL's protocol
is not file
Parameters: files the array of files
Returns: the array of URLs
Throws: IOException if an error occurs
Parameters: fileName The name of the file. seconds The maximum time in seconds to wait.
Returns: True if file exists.