org.apache.commons.io
Class FileUtils
java.lang.Object org.apache.commons.io.FileUtils
public class FileUtils extends Object
General file manipulation utilities.
Facilities are provided in the following areas:
- writing to a file •写入文件
- reading from a file •从文件中读取
- make a directory including parent directories •生成一个包括父目录的目录
- copying files and directories •复制文件和目录
- deleting files and directories •删除的文件和目录
- converting to and from a URL •转换,从一个URL
- listing files and directories by filter and extension •列出文件和目录由过滤器和扩展
- comparing file content •文件内容比较
- file last changed date •文件的最后更改日期
- calculating a checksum •计算校验
1.
getFile,
Directory
getFile
public static File getFile(File directory, String... names)
- Construct a file from the set of name elements.
-
-
Parameters:
-
directory
- the parent directory -
names
- the name elements
Returns:
- the file Since:
- 2.1
-
getFile
public static File getFile(String... names)
- Construct a file from the set of name elements.
-
-
Parameters:
-
names
- the name elements
Returns:
- the file Since:
- 2.1
-
getTempDirectoryPath
public static String getTempDirectoryPath()
- Returns the path to the system temporary directory.
-
-
Returns:
- the path to the system temporary directory. Since:
- 2.0
getTempDirectory
public static File getTempDirectory()
-
Returns a
File
representing the system temporary directory. -
-
Returns:
- the system temporary directory. Since:
- 2.0
getUserDirectoryPath
public static String getUserDirectoryPath()
- Returns the path to the user's home directory.
-
-
Returns:
- the path to the user's home directory. Since:
- 2.0
getUserDirectory
public static File getUserDirectory()
-
Returns a
File
representing the user's home directory. -
-
Returns:
- the user's home directory. Since:
- 2.0
openInputStream
public static FileInputStream openInputStream(File file) throws IOException
-
Opens a
FileInputStream
for the specified file, providing better error messages than simply callingnew FileInputStream(file)
.At the end of the method either the stream will be successfully opened, or an exception will have been thrown.
An exception is thrown if the file does not exist. An exception is thrown if the file object exists but is a directory. An exception is thrown if the file exists but cannot be read.
-
-
Parameters:
-
file
- the file to open for input, must not benull
Returns:
-
a new
FileInputStream
for the specified file
Throws:
-
FileNotFoundException
- if the file does not exist -
IOException
- if the file object is a directory -
IOException
- if the file cannot be read
Since:
- 1.3
-
openOutputStream
public static FileOutputStream openOutputStream(File file) throws IOException
-
Opens a
FileOutputStream
for the specified file, checking and creating the parent directory if it does not exist.At the end of the method either the stream will be successfully opened, or an exception will have been thrown.
The parent directory will be created if it does not exist. The file will be created if it does not exist. An exception is thrown if the file object exists but is a directory. An exception is thrown if the file exists but cannot be written to. An exception is thrown if the parent directory cannot be created.
-
-
Parameters:
-
file
- the file to open for output, must not benull
Returns:
-
a new
FileOutputStream
for the specified file
Throws:
-
IOException
- if the file object is a directory -
IOException
- if the file cannot be written to -
IOException
- if a parent directory needs creating but that fails
Since:
- 1.3
-
openOutputStream
public static FileOutputStream openOutputStream(File file, boolean append) throws IOException
-
Opens a
FileOutputStream
for the specified file, checking and creating the parent directory if it does not exist.At the end of the method either the stream will be successfully opened, or an exception will have been thrown.
The parent directory will be created if it does not exist. The file will be created if it does not exist. An exception is thrown if the file object exists but is a directory. An exception is thrown if the file exists but cannot be written to. An exception is thrown if the parent directory cannot be created.
-
-
Parameters:
-
file
- the file to open for output, must not benull
-
append
- iftrue
, then bytes will be added to the end of the file rather than overwriting
Returns:
-
a new
FileOutputStream
for the specified file
Throws:
-
IOException
- if the file object is a directory -
IOException
- if the file cannot be written to -
IOException
- if a parent directory needs creating but that fails
Since:
- 2.1
-
byteCountToDisplaySize
public static String byteCountToDisplaySize(BigInteger size)
-
Returns a human-readable version of the file size, where the input represents a specific number of bytes.
If the size is over 1GB, the size is returned as the number of whole GB, i.e. the size is rounded down to the nearest GB boundary.
Similarly for the 1MB and 1KB boundaries.
-
-
Parameters:
-
size
- the number of bytes
Returns:
- a human-readable display value (includes units - EB, PB, TB, GB, MB, KB or bytes) Since:
- 2.4 See Also:
- IO-226 - should the rounding be changed?
-
byteCountToDisplaySize
public static String byteCountToDisplaySize(long size)
-
Returns a human-readable version of the file size, where the input represents a specific number of bytes.
If the size is over 1GB, the size is returned as the number of whole GB, i.e. the size is rounded down to the nearest GB boundary.
Similarly for the 1MB and 1KB boundaries.
-
-
Parameters:
-
size
- the number of bytes
Returns:
- a human-readable display value (includes units - EB, PB, TB, GB, MB, KB or bytes) See Also:
- IO-226 - should the rounding be changed?
-
touch
public static void touch(File file) throws IOException
-
Implements the same behaviour as the "touch" utility on Unix. It creates a new file with size 0 or, if the file exists already, it is opened and closed without modifying it, but updating the file date and time.
NOTE: As from v1.3, this method throws an IOException if the last modified date of the file cannot be set. Also, as from v1.3 this method creates parent directories if they do not exist.
-
-
Parameters:
-
file
- the File to touch
Throws:
-
IOException
- If an I/O problem occurs
-
convertFileCollectionToFileArray
public static File[] convertFileCollectionToFileArray(Collection<File> files)
- Converts a Collection containing java.io.File instanced into array representation. This is to account for the difference between File.listFiles() and FileUtils.listFiles().
-
-
Parameters:
-
files
- a Collection containing java.io.File instances
Returns:
- an array of java.io.File
-
listFiles
public static Collection<File> listFiles(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)
-
Finds files within a given directory (and optionally its subdirectories). All files found are filtered by an IOFileFilter.
If your search should recurse into subdirectories you can pass in an IOFileFilter for directories. You don't need to bind a DirectoryFileFilter (via logical AND) to this filter. This method does that for you.
An example: If you want to search through all directories called "temp" you pass in
FileFilterUtils.NameFileFilter("temp")
Another common usage of this method is find files in a directory tree but ignoring the directories generated CVS. You can simply pass in
FileFilterUtils.makeCVSAware(null)
. -
-
Parameters:
-
directory
- the directory to search in -
fileFilter
- filter to apply when finding files. -
dirFilter
- optional filter to apply when finding subdirectories. If this parameter isnull
, subdirectories will not be included in the search. Use TrueFileFilter.INSTANCE to match all directories.
Returns:
- an collection of java.io.File with the matching files See Also:
-
FileFilterUtils
,NameFileFilter
-
listFilesAndDirs
public static Collection<File> listFilesAndDirs(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)
-
Finds files within a given directory (and optionally its subdirectories). All files found are filtered by an IOFileFilter.
The resulting collection includes the subdirectories themselves.
-
-
Parameters:
-
directory
- the directory to search in -
fileFilter
- filter to apply when finding files. -
dirFilter
- optional filter to apply when finding subdirectories. If this parameter isnull
, subdirectories will not be included in the search. Use TrueFileFilter.INSTANCE to match all directories.
Returns:
- an collection of java.io.File with the matching files Since:
- 2.2 See Also:
-
listFiles(java.io.File, org.apache.commons.io.filefilter.IOFileFilter, org.apache.commons.io.filefilter.IOFileFilter)
,FileFilterUtils
,NameFileFilter
-
iterateFiles
public static Iterator<File> iterateFiles(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)
-
Allows iteration over the files in given directory (and optionally its subdirectories).
All files found are filtered by an IOFileFilter. This method is based on
listFiles(File, IOFileFilter, IOFileFilter)
, which supports Iterable ('foreach' loop). -
-
Parameters:
-
directory
- the directory to search in -
fileFilter
- filter to apply when finding files. -
dirFilter
- optional filter to apply when finding subdirectories. If this parameter isnull
, subdirectories will not be included in the search. Use TrueFileFilter.INSTANCE to match all directories.
Returns:
- an iterator of java.io.File for the matching files Since:
- 1.2 See Also:
-
FileFilterUtils
,NameFileFilter
-
iterateFilesAndDirs
public static Iterator<File> iterateFilesAndDirs(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)
-
Allows iteration over the files in given directory (and optionally its subdirectories).
All files found are filtered by an IOFileFilter. This method is based on
listFilesAndDirs(File, IOFileFilter, IOFileFilter)
, which supports Iterable ('foreach' loop).The resulting iterator includes the subdirectories themselves.
-
-
Parameters:
-
directory
- the directory to search in -
fileFilter
- filter to apply when finding files. -
dirFilter
- optional filter to apply when finding subdirectories. If this parameter isnull
, subdirectories will not be included in the search. Use TrueFileFilter.INSTANCE to match all directories.
Returns:
- an iterator of java.io.File for the matching files Since:
- 2.2 See Also:
-
FileFilterUtils
,NameFileFilter
-
listFiles
public static Collection<File> listFiles(File directory, String[] extensions, boolean recursive)
- Finds files within a given directory (and optionally its subdirectories) which match an array of extensions.
-
-
Parameters:
-
directory
- the directory to search in -
extensions
- an array of extensions, ex. {"java","xml"}. If this parameter isnull
, all files are returned. -
recursive
- if true all subdirectories are searched as well
Returns:
- an collection of java.io.File with the matching files
-
iterateFiles
public static Iterator<File> iterateFiles(File directory, String[] extensions, boolean recursive)
-
Allows iteration over the files in a given directory (and optionally its subdirectories) which match an array of extensions. This method is based on
listFiles(File, String[], boolean)
, which supports Iterable ('foreach' loop). -
-
Parameters:
-
directory
- the directory to search in -
extensions
- an array of extensions, ex. {"java","xml"}. If this parameter isnull
, all files are returned. -
recursive
- if true all subdirectories are searched as well
Returns:
- an iterator of java.io.File with the matching files Since:
- 1.2
-
contentEquals
public static boolean contentEquals(File file1, File file2) throws IOException
-
Compares the contents of two files to determine if they are equal or not.
This method checks to see if the two files are different lengths or if they point to the same file, before resorting to byte-by-byte comparison of the contents.
Code origin: Avalon
-
-
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 Throws:
-
IOException
- in case of an I/O error
-
contentEqualsIgnoreEOL
public static boolean contentEqualsIgnoreEOL(File file1, File file2, String charsetName) throws IOException
-
Compares the contents of two files to determine if they are equal or not.
This method checks to see if the two files point to the same file, before resorting to line-by-line comparison of the contents.
-
-
Parameters:
-
file1
- the first file -
file2
- the second file -
charsetName
- the character encoding to be used. May be null, in which case the platform default is used
Returns:
- true if the content of the files are equal or neither exists, false otherwise Throws:
-
IOException
- in case of an I/O error
Since:
- 2.2 See Also:
-
IOUtils.contentEqualsIgnoreEOL(Reader, Reader)
-
toFile
public static File toFile(URL url)
-
Convert from a
URL
to aFile
.From version 1.1 this method will decode the URL. Syntax such as
file:///my%20docs/file.txt
will be correctly decoded to/my docs/file.txt
. Starting with version 1.5, this method uses UTF-8 to decode percent-encoded octets to characters. Additionally, malformed percent-encoded octets are handled leniently by passing them through literally. -
-
Parameters:
-
url
- the file URL to convert,null
returnsnull
Returns:
-
the equivalent
File
object, ornull
if the URL's protocol is notfile
-
toFiles
public static File[] toFiles(URL[] urls)
-
Converts each of an array of
URL
to aFile
.Returns an array of the same size as the input. If the input is
null
, an empty array is returned. If the input containsnull
, the output array containsnull
at the same index.This method will decode the URL. Syntax such as
file:///my%20docs/file.txt
will be correctly decoded to/my docs/file.txt
. -
-
Parameters:
-
urls
- the file URLs to convert,null
returns empty array
Returns:
-
a non-
null
array of Files matching the input, with anull
item if there was anull
at that index in the input array
Throws:
-
IllegalArgumentException
- if any file is not a URL file -
IllegalArgumentException
- if any file is incorrectly encoded
Since:
- 1.1
-
toURLs
public static URL[] toURLs(File[] files) throws IOException
-
Converts each of an array of
File
to aURL
.Returns an array of the same size as the input.
-
-
Parameters:
-
files
- the files to convert, must not benull
Returns:
- an array of URLs matching the input Throws:
-
IOException
- if a file cannot be converted -
NullPointerException
- if the parameter is null
-
2.copy
copyFileToDirectory
public static void copyFileToDirectory(File srcFile, File destDir) throws IOException
-
Copies a file to a directory preserving the file date.
This method copies the contents of the specified source file to a file of the same name in the specified destination directory. The destination directory is created if it does not exist. If the destination file exists, then this method will overwrite it.
Note: This method tries to preserve the file's last modified date/times using
File.setLastModified(long)
, however it is not guaranteed that the operation will succeed. If the modification operation fails, no indication is provided. -
-
Parameters:
-
srcFile
- an existing file to copy, must not benull
-
destDir
- the directory to place the copy in, must not benull
Throws:
-
NullPointerException
- if source or destination is null -
IOException
- if source or destination is invalid -
IOException
- if an IO error occurs during copying
See Also:
-
copyFile(File, File, boolean)
-
copyFileToDirectory
public static void copyFileToDirectory(File srcFile, File destDir, boolean preserveFileDate) throws IOException
-
Copies a file to a directory optionally preserving the file date.
This method copies the contents of the specified source file to a file of the same name in the specified destination directory. The destination directory is created if it does not exist. If the destination file exists, then this method will overwrite it.
Note: Setting
preserveFileDate
totrue
tries to preserve the file's last modified date/times usingFile.setLastModified(long)
, however it is not guaranteed that the operation will succeed. If the modification operation fails, no indication is provided. -
-
Parameters:
-
srcFile
- an existing file to copy, must not benull
-
destDir
- the directory to place the copy in, must not benull
-
preserveFileDate
- true if the file date of the copy should be the same as the original
Throws:
-
NullPointerException
- if source or destination isnull
-
IOException
- if source or destination is invalid -
IOException
- if an IO error occurs during copying
Since:
- 1.3 See Also:
-
copyFile(File, File, boolean)
-
copyFile
public static void copyFile(File srcFile, File destFile) throws IOException
-
Copies a file to a new location preserving the file date.
This method copies the contents of the specified source file to the specified destination file. The directory holding the destination file is created if it does not exist. If the destination file exists, then this method will overwrite it.
Note: This method tries to preserve the file's last modified date/times using
File.setLastModified(long)
, however it is not guaranteed that the operation will succeed. If the modification operation fails, no indication is provided. -
-
Parameters:
-
srcFile
- an existing file to copy, must not benull
-
destFile
- the new file, must not benull
Throws:
-
NullPointerException
- if source or destination isnull
-
IOException
- if source or destination is invalid -
IOException
- if an IO error occurs during copying
See Also:
-
copyFileToDirectory(File, File)
-
copyFile
public static void copyFile(File srcFile, File destFile, boolean preserveFileDate) throws IOException
-
Copies a file to a new location.
This method copies the contents of the specified source file to the specified destination file. The directory holding the destination file is created if it does not exist. If the destination file exists, then this method will overwrite it.
Note: Setting
preserveFileDate
totrue
tries to preserve the file's last modified date/times usingFile.setLastModified(long)
, however it is not guaranteed that the operation will succeed. If the modification operation fails, no indication is provided. -
-
Parameters:
-
srcFile
- an existing file to copy, must not benull
-
destFile
- the new file, must not benull
-
preserveFileDate
- true if the file date of the copy should be the same as the original
Throws:
-
NullPointerException
- if source or destination isnull
-
IOException
- if source or destination is invalid -
IOException
- if an IO error occurs during copying
See Also:
-
copyFileToDirectory(File, File, boolean)
-
copyFile
public static long copyFile(File input, OutputStream output) throws IOException
-
Copy bytes from a
File
to anOutputStream
.This method buffers the input internally, so there is no need to use a
BufferedInputStream
. -
-
Parameters:
-
input
- theFile
to read from -
output
- theOutputStream
to write to
Returns:
- the number of bytes copied Throws:
-
NullPointerException
- if the input or output is null -
IOException
- if an I/O error occurs
Since:
- 2.1
-
copyDirectoryToDirectory
public static void copyDirectoryToDirectory(File srcDir, File destDir) throws IOException
-
Copies a directory to within another directory preserving the file dates.
This method copies the source directory and all its contents to a directory of the same name in the specified destination directory.
The destination directory is created if it does not exist. If the destination directory did exist, then this method merges the source with the destination, with the source taking precedence.
Note: This method tries to preserve the files' last modified date/times using
File.setLastModified(long)
, however it is not guaranteed that those operations will succeed. If the modification operation fails, no indication is provided. -
-
Parameters:
-
srcDir
- an existing directory to copy, must not benull
-
destDir
- the directory to place the copy in, must not benull
Throws:
-
NullPointerException
- if source or destination isnull
-
IOException
- if source or destination is invalid -
IOException
- if an IO error occurs during copying
Since:
- 1.2
-
copyDirectory
public static void copyDirectory(File srcDir, File destDir) throws IOException
-
Copies a whole directory to a new location preserving the file dates.
This method copies the specified directory and all its child directories and files to the specified destination. The destination is the new location and name of the directory.
The destination directory is created if it does not exist. If the destination directory did exist, then this method merges the source with the destination, with the source taking precedence.
Note: This method tries to preserve the files' last modified date/times using
File.setLastModified(long)
, however it is not guaranteed that those operations will succeed. If the modification operation fails, no indication is provided. -
-
Parameters:
-
srcDir
- an existing directory to copy, must not benull
-
destDir
- the new directory, must not benull
Throws:
-
NullPointerException
- if source or destination isnull
-
IOException
- if source or destination is invalid -
IOException
- if an IO error occurs during copying
Since:
- 1.1
-
copyDirectory
public static void copyDirectory(File srcDir, File destDir, boolean preserveFileDate) throws IOException
-
Copies a whole directory to a new location.
This method copies the contents of the specified source directory to within the specified destination directory.
The destination directory is created if it does not exist. If the destination directory did exist, then this method merges the source with the destination, with the source taking precedence.
Note: Setting
preserveFileDate
totrue
tries to preserve the files' last modified date/times usingFile.setLastModified(long)
, however it is not guaranteed that those operations will succeed. If the modification operation fails, no indication is provided. -
-
Parameters:
-
srcDir
- an existing directory to copy, must not benull
-
destDir
- the new directory, must not benull
-
preserveFileDate
- true if the file date of the copy should be the same as the original
Throws:
-
NullPointerException
- if source or destination isnull
-
IOException
- if source or destination is invalid -
IOException
- if an IO error occurs during copying
Since:
- 1.1
-
copyDirectory
public static void copyDirectory(File srcDir, File destDir, FileFilter filter) throws IOException
-
Copies a filtered directory to a new location preserving the file dates.
This method copies the contents of the specified source directory to within the specified destination directory.
The destination directory is created if it does not exist. If the destination directory did exist, then this method merges the source with the destination, with the source taking precedence.
Note: This method tries to preserve the files' last modified date/times using
File.setLastModified(long)
, however it is not guaranteed that those operations will succeed. If the modification operation fails, no indication is provided.Example: Copy directories only
// only copy the directory structure FileUtils.copyDirectory(srcDir, destDir, DirectoryFileFilter.DIRECTORY);
Example: Copy directories and txt files
// Create a filter for ".txt" files IOFileFilter txtSuffixFilter = FileFilterUtils.suffixFileFilter(".txt"); IOFileFilter txtFiles = FileFilterUtils.andFileFilter(FileFileFilter.FILE, txtSuffixFilter); // Create a filter for either directories or ".txt" files FileFilter filter = FileFilterUtils.orFileFilter(DirectoryFileFilter.DIRECTORY, txtFiles); // Copy using the filter FileUtils.copyDirectory(srcDir, destDir, filter);
-
-
Parameters:
-
srcDir
- an existing directory to copy, must not benull
-
destDir
- the new directory, must not benull
-
filter
- the filter to apply, null means copy all directories and files should be the same as the original
Throws:
-
NullPointerException
- if source or destination isnull
-
IOException
- if source or destination is invalid -
IOException
- if an IO error occurs during copying
Since:
- 1.4
-
copyDirectory
public static void copyDirectory(File srcDir, File destDir, FileFilter filter, boolean preserveFileDate) throws IOException
-
Copies a filtered directory to a new location.
This method copies the contents of the specified source directory to within the specified destination directory.
The destination directory is created if it does not exist. If the destination directory did exist, then this method merges the source with the destination, with the source taking precedence.
Note: Setting
preserveFileDate
totrue
tries to preserve the files' last modified date/times usingFile.setLastModified(long)
, however it is not guaranteed that those operations will succeed. If the modification operation fails, no indication is provided.Example: Copy directories only
// only copy the directory structure FileUtils.copyDirectory(srcDir, destDir, DirectoryFileFilter.DIRECTORY, false);
Example: Copy directories and txt files
// Create a filter for ".txt" files IOFileFilter txtSuffixFilter = FileFilterUtils.suffixFileFilter(".txt"); IOFileFilter txtFiles = FileFilterUtils.andFileFilter(FileFileFilter.FILE, txtSuffixFilter); // Create a filter for either directories or ".txt" files FileFilter filter = FileFilterUtils.orFileFilter(DirectoryFileFilter.DIRECTORY, txtFiles); // Copy using the filter FileUtils.copyDirectory(srcDir, destDir, filter, false);
-
-
Parameters:
-
srcDir
- an existing directory to copy, must not benull
-
destDir
- the new directory, must not benull
-
filter
- the filter to apply, null means copy all directories and files -
preserveFileDate
- true if the file date of the copy should be the same as the original
Throws:
-
NullPointerException
- if source or destination isnull
-
IOException
- if source or destination is invalid -
IOException
- if an IO error occurs during copying
Since:
- 1.4
-
copyURLToFile
public static void copyURLToFile(URL source, File destination) throws IOException
-
Copies bytes from the URL
source
to a filedestination
. The directories up todestination
will be created if they don't already exist.destination
will be overwritten if it already exists.Warning: this method does not set a connection or read timeout and thus might block forever. Use
copyURLToFile(URL, File, int, int)
with reasonable timeouts to prevent this. -
-
Parameters:
-
source
- theURL
to copy bytes from, must not benull
-
destination
- the non-directoryFile
to write bytes to (possibly overwriting), must not benull
Throws:
-
IOException
- ifsource
URL cannot be opened -
IOException
- ifdestination
is a directory -
IOException
- ifdestination
cannot be written -
IOException
- ifdestination
needs creating but can't be -
IOException
- if an IO error occurs during copying
-
copyURLToFile
public static void copyURLToFile(URL source, File destination, int connectionTimeout, int readTimeout) throws IOException
-
Copies bytes from the URL
source
to a filedestination
. The directories up todestination
will be created if they don't already exist.destination
will be overwritten if it already exists. -
-
Parameters:
-
source
- theURL
to copy bytes from, must not benull
-
destination
- the non-directoryFile
to write bytes to (possibly overwriting), must not benull
-
connectionTimeout
- the number of milliseconds until this method will timeout if no connection could be established to thesource
-
readTimeout
- the number of milliseconds until this method will timeout if no data could be read from thesource
Throws:
-
IOException
- ifsource
URL cannot be opened -
IOException
- ifdestination
is a directory -
IOException
- ifdestination
cannot be written -
IOException
- ifdestination
needs creating but can't be -
IOException
- if an IO error occurs during copying
Since:
- 2.0
-
copyInputStreamToFile
public static void copyInputStreamToFile(InputStream source, File destination) throws IOException
-
Copies bytes from an
InputStream
source
to a filedestination
. The directories up todestination
will be created if they don't already exist.destination
will be overwritten if it already exists. -
-
Parameters:
-
source
- theInputStream
to copy bytes from, must not benull
-
destination
- the non-directoryFile
to write bytes to (possibly overwriting), must not benull
Throws:
-
IOException
- ifdestination
is a directory -
IOException
- ifdestination
cannot be written -
IOException
- ifdestination
needs creating but can't be -
IOException
- if an IO error occurs during copying
Since:
- 2.0
-
3.delete
deleteDirectory
public static void deleteDirectory(File directory) throws IOException
- Deletes a directory recursively.
-
-
Parameters:
-
directory
- directory to delete
Throws:
-
IOException
- in case deletion is unsuccessful
-
deleteQuietly
public static boolean deleteQuietly(File file)
-
Deletes a file, never throwing an exception. If file is a directory, delete it and all sub-directories.
The difference between File.delete() and this method are:
- A directory to be deleted does not have to be empty.
- No exceptions are thrown when a file or directory cannot be deleted.
-
-
Parameters:
-
file
- file or directory to delete, can benull
Returns:
-
true
if the file or directory was deleted, otherwisefalse
Since:
- 1.4
-
directoryContains
public static boolean directoryContains(File directory, File child) throws IOException
-
Determines whether the
parent
directory contains thechild
element (a file or directory).Files are normalized before comparison.
Edge cases:- A
directory
must not be null: if null, throw IllegalArgumentException - A
directory
must be a directory: if not a directory, throw IllegalArgumentException - A directory does not contain itself: return false
- A null child file is not contained in any parent: return false
- A
-
-
Parameters:
-
directory
- the file to consider as the parent. -
child
- the file to consider as the child.
Returns:
- true is the candidate leaf is under by the specified composite. False otherwise. Throws:
-
IOException
- if an IO error occurs while checking the files.
Since:
- 2.2 See Also:
-
FilenameUtils.directoryContains(String, String)
-
cleanDirectory
public static void cleanDirectory(File directory) throws IOException
- Cleans a directory without deleting it.
-
-
Parameters:
-
directory
- directory to clean
Throws:
-
IOException
- in case cleaning is unsuccessful
-
waitFor
public static boolean waitFor(File file, int seconds)
-
Waits for NFS to propagate a file creation, imposing a timeout.
This method repeatedly tests
File.exists()
until it returns true up to the maximum time specified in seconds. -
-
Parameters:
-
file
- the file to check, must not benull
-
seconds
- the maximum time in seconds to wait
Returns:
- true if file exists Throws:
-
NullPointerException
- if the file isnull
-
4.read
readFileToString
public static String readFileToString(File file, Charset encoding) throws IOException
- Reads the contents of a file into a String. The file is always closed.
-
-
Parameters:
-
file
- the file to read, must not benull
-
encoding
- the encoding to use,null
means platform default
Returns:
-
the file contents, never
null
Throws:
-
IOException
- in case of an I/O error
Since:
- 2.3
-
readFileToString
public static String readFileToString(File file, String encoding) throws IOException
- Reads the contents of a file into a String. The file is always closed.
-
-
Parameters:
-
file
- the file to read, must not benull
-
encoding
- the encoding to use,null
means platform default
Returns:
-
the file contents, never
null
Throws:
-
IOException
- in case of an I/O error -
UnsupportedCharsetException
- thrown instead ofUnsupportedEncodingException
in version 2.2 if the encoding is not supported.
Since:
- 2.3
-
readFileToString
public static String readFileToString(File file) throws IOException
- Reads the contents of a file into a String using the default encoding for the VM. The file is always closed.
-
-
Parameters:
-
file
- the file to read, must not benull
Returns:
-
the file contents, never
null
Throws:
-
IOException
- in case of an I/O error
Since:
- 1.3.1
-
readFileToByteArray
public static byte[] readFileToByteArray(File file) throws IOException
- Reads the contents of a file into a byte array. The file is always closed.
-
-
Parameters:
-
file
- the file to read, must not benull
Returns:
-
the file contents, never
null
Throws:
-
IOException
- in case of an I/O error
Since:
- 1.1
-
readLines
public static List<String> readLines(File file, Charset encoding) throws IOException
- Reads the contents of a file line by line to a List of Strings. The file is always closed.
-
-
Parameters:
-
file
- the file to read, must not benull
-
encoding
- the encoding to use,null
means platform default
Returns:
-
the list of Strings representing each line in the file, never
null
Throws:
-
IOException
- in case of an I/O error
Since:
- 2.3
-
readLines
public static List<String> readLines(File file, String encoding) throws IOException
- Reads the contents of a file line by line to a List of Strings. The file is always closed.
-
-
Parameters:
-
file
- the file to read, must not benull
-
encoding
- the encoding to use,null
means platform default
Returns:
-
the list of Strings representing each line in the file, never
null
Throws:
-
IOException
- in case of an I/O error -
UnsupportedCharsetException
- thrown instead ofUnsupportedEncodingException
in version 2.2 if the encoding is not supported.
Since:
- 1.1
-
readLines
public static List<String> readLines(File file) throws IOException
- Reads the contents of a file line by line to a List of Strings using the default encoding for the VM. The file is always closed.
-
-
Parameters:
-
file
- the file to read, must not benull
Returns:
-
the list of Strings representing each line in the file, never
null
Throws:
-
IOException
- in case of an I/O error
Since:
- 1.3
-
lineIterator
public static LineIterator lineIterator(File file, String encoding) throws IOException
-
Returns an Iterator for the lines in a
File
.This method opens an
InputStream
for the file. When you have finished with the iterator you should close the stream to free internal resources. This can be done by calling theLineIterator.close()
orLineIterator.closeQuietly(LineIterator)
method.The recommended usage pattern is:
LineIterator it = FileUtils.lineIterator(file, "UTF-8"); try { while (it.hasNext()) { String line = it.nextLine(); /// do something with line } } finally { LineIterator.closeQuietly(iterator); }
If an exception occurs during the creation of the iterator, the underlying stream is closed.
-
-
Parameters:
-
file
- the file to open for input, must not benull
-
encoding
- the encoding to use,null
means platform default
Returns:
-
an Iterator of the lines in the file, never
null
Throws:
-
IOException
- in case of an I/O error (file closed)
Since:
- 1.2
-
lineIterator
public static LineIterator lineIterator(File file) throws IOException
-
Returns an Iterator for the lines in a
File
using the default encoding for the VM. -
-
Parameters:
-
file
- the file to open for input, must not benull
Returns:
-
an Iterator of the lines in the file, never
null
Throws:
-
IOException
- in case of an I/O error (file closed)
Since:
- 1.3 See Also:
-
lineIterator(File, String)
-
5.write
writeStringToFile
public static void writeStringToFile(File file, String data, Charset encoding) throws IOException
- Writes a String to a file creating the file if it does not exist. NOTE: As from v1.3, the parent directories of the file will be created if they do not exist.
-
-
Parameters:
-
file
- the file to write -
data
- the content to write to the file -
encoding
- the encoding to use,null
means platform default
Throws:
-
IOException
- in case of an I/O error -
UnsupportedEncodingException
- if the encoding is not supported by the VM
Since:
- 2.4
-
writeStringToFile
public static void writeStringToFile(File file, String data, String encoding) throws IOException
- Writes a String to a file creating the file if it does not exist. NOTE: As from v1.3, the parent directories of the file will be created if they do not exist.
-
-
Parameters:
-
file
- the file to write -
data
- the content to write to the file -
encoding
- the encoding to use,null
means platform default
Throws:
-
IOException
- in case of an I/O error -
UnsupportedEncodingException
- if the encoding is not supported by the VM
-
writeStringToFile
public static void writeStringToFile(File file, String data, Charset encoding, boolean append) throws IOException
- Writes a String to a file creating the file if it does not exist.
-
-
Parameters:
-
file
- the file to write -
data
- the content to write to the file -
encoding
- the encoding to use,null
means platform default -
append
- iftrue
, then the String will be added to the end of the file rather than overwriting
Throws:
-
IOException
- in case of an I/O error
Since:
- 2.3
-
writeStringToFile
public static void writeStringToFile(File file, String data, String encoding, boolean append) throws IOException
- Writes a String to a file creating the file if it does not exist.
-
-
Parameters:
-
file
- the file to write -
data
- the content to write to the file -
encoding
- the encoding to use,null
means platform default -
append
- iftrue
, then the String will be added to the end of the file rather than overwriting
Throws:
-
IOException
- in case of an I/O error -
UnsupportedCharsetException
- thrown instead ofUnsupportedEncodingException
in version 2.2 if the encoding is not supported by the VM
Since:
- 2.1
-
writeStringToFile
public static void writeStringToFile(File file, String data) throws IOException
- Writes a String to a file creating the file if it does not exist using the default encoding for the VM.
-
-
Parameters:
-
file
- the file to write -
data
- the content to write to the file
Throws:
-
IOException
- in case of an I/O error
-
writeStringToFile
public static void writeStringToFile(File file, String data, boolean append) throws IOException
- Writes a String to a file creating the file if it does not exist using the default encoding for the VM.
-
-
Parameters:
-
file
- the file to write -
data
- the content to write to the file -
append
- iftrue
, then the String will be added to the end of the file rather than overwriting
Throws:
-
IOException
- in case of an I/O error
Since:
- 2.1
-
write
public static void write(File file, CharSequence data) throws IOException
- Writes a CharSequence to a file creating the file if it does not exist using the default encoding for the VM.
-
-
Parameters:
-
file
- the file to write -
data
- the content to write to the file
Throws:
-
IOException
- in case of an I/O error
Since:
- 2.0
-
write
public static void write(File file, CharSequence data, boolean append) throws IOException
- Writes a CharSequence to a file creating the file if it does not exist using the default encoding for the VM.
-
-
Parameters:
-
file
- the file to write -
data
- the content to write to the file -
append
- iftrue
, then the data will be added to the end of the file rather than overwriting
Throws:
-
IOException
- in case of an I/O error
Since:
- 2.1
-
write
public static void write(File file, CharSequence data, Charset encoding) throws IOException
- Writes a CharSequence to a file creating the file if it does not exist.
-
-
Parameters:
-
file
- the file to write -
data
- the content to write to the file -
encoding
- the encoding to use,null
means platform default
Throws:
-
IOException
- in case of an I/O error
Since:
- 2.3
-
write
public static void write(File file, CharSequence data, String encoding) throws IOException
- Writes a CharSequence to a file creating the file if it does not exist.
-
-
Parameters:
-
file
- the file to write -
data
- the content to write to the file -
encoding
- the encoding to use,null
means platform default
Throws:
-
IOException
- in case of an I/O error -
UnsupportedEncodingException
- if the encoding is not supported by the VM
Since:
- 2.0
-
write
public static void write(File file, CharSequence data, Charset encoding, boolean append) throws IOException
- Writes a CharSequence to a file creating the file if it does not exist.
-
-
Parameters:
-
file
- the file to write -
data
- the content to write to the file -
encoding
- the encoding to use,null
means platform default -
append
- iftrue
, then the data will be added to the end of the file rather than overwriting
Throws:
-
IOException
- in case of an I/O error
Since:
- 2.3
-
write
public static void write(File file, CharSequence data, String encoding, boolean append) throws IOException
- Writes a CharSequence to a file creating the file if it does not exist.
-
-
Parameters:
-
file
- the file to write -
data
- the content to write to the file -
encoding
- the encoding to use,null
means platform default -
append
- iftrue
, then the data will be added to the end of the file rather than overwriting
Throws:
-
IOException
- in case of an I/O error -
UnsupportedCharsetException
- thrown instead ofUnsupportedEncodingException
in version 2.2 if the encoding is not supported by the VM
Since:
- IO 2.1
-
writeByteArrayToFile
public static void writeByteArrayToFile(File file, byte[] data) throws IOException
-
Writes a byte array to a file creating the file if it does not exist.
NOTE: As from v1.3, the parent directories of the file will be created if they do not exist.
-
-
Parameters:
-
file
- the file to write to -
data
- the content to write to the file
Throws:
-
IOException
- in case of an I/O error
Since:
- 1.1
-
writeByteArrayToFile
public static void writeByteArrayToFile(File file, byte[] data, boolean append) throws IOException
- Writes a byte array to a file creating the file if it does not exist.
-
-
Parameters:
-
file
- the file to write to -
data
- the content to write to the file -
append
- iftrue
, then bytes will be added to the end of the file rather than overwriting
Throws:
-
IOException
- in case of an I/O error
Since:
- IO 2.1
-
writeLines
public static void writeLines(File file, String encoding, Collection<?> lines) throws IOException
-
Writes the
toString()
value of each item in a collection to the specifiedFile
line by line. The specified character encoding and the default line ending will be used.NOTE: As from v1.3, the parent directories of the file will be created if they do not exist.
-
-
Parameters:
-
file
- the file to write to -
encoding
- the encoding to use,null
means platform default -
lines
- the lines to write,null
entries produce blank lines
Throws:
-
IOException
- in case of an I/O error -
UnsupportedEncodingException
- if the encoding is not supported by the VM
Since:
- 1.1
-
writeLines
public static void writeLines(File file, String encoding, Collection<?> lines, boolean append) throws IOException
-
Writes the
toString()
value of each item in a collection to the specifiedFile
line by line, optionally appending. The specified character encoding and the default line ending will be used. -
-
Parameters:
-
file
- the file to write to -
encoding
- the encoding to use,null
means platform default -
lines
- the lines to write,null
entries produce blank lines -
append
- iftrue
, then the lines will be added to the end of the file rather than overwriting
Throws:
-
IOException
- in case of an I/O error -
UnsupportedEncodingException
- if the encoding is not supported by the VM
Since:
- 2.1
-
writeLines
public static void writeLines(File file, Collection<?> lines) throws IOException
-
Writes the
toString()
value of each item in a collection to the specifiedFile
line by line. The default VM encoding and the default line ending will be used. -
-
Parameters:
-
file
- the file to write to -
lines
- the lines to write,null
entries produce blank lines
Throws:
-
IOException
- in case of an I/O error
Since:
- 1.3
-
writeLines
public static void writeLines(File file, Collection<?> lines, boolean append) throws IOException
-
Writes the
toString()
value of each item in a collection to the specifiedFile
line by line. The default VM encoding and the default line ending will be used. -
-
Parameters:
-
file
- the file to write to -
lines
- the lines to write,null
entries produce blank lines -
append
- iftrue
, then the lines will be added to the end of the file rather than overwriting
Throws:
-
IOException
- in case of an I/O error
Since:
- 2.1
-
writeLines
public static void writeLines(File file, String encoding, Collection<?> lines, String lineEnding) throws IOException
-
Writes the
toString()
value of each item in a collection to the specifiedFile
line by line. The specified character encoding and the line ending will be used.NOTE: As from v1.3, the parent directories of the file will be created if they do not exist.
-
-
Parameters:
-
file
- the file to write to -
encoding
- the encoding to use,null
means platform default -
lines
- the lines to write,null
entries produce blank lines -
lineEnding
- the line separator to use,null
is system default
Throws:
-
IOException
- in case of an I/O error -
UnsupportedEncodingException
- if the encoding is not supported by the VM
Since:
- 1.1
-
writeLines
public static void writeLines(File file, String encoding, Collection<?> lines, String lineEnding, boolean append) throws IOException
-
Writes the
toString()
value of each item in a collection to the specifiedFile
line by line. The specified character encoding and the line ending will be used. -
-
Parameters:
-
file
- the file to write to -
encoding
- the encoding to use,null
means platform default -
lines
- the lines to write,null
entries produce blank lines -
lineEnding
- the line separator to use,null
is system default -
append
- iftrue
, then the lines will be added to the end of the file rather than overwriting
Throws:
-
IOException
- in case of an I/O error -
UnsupportedEncodingException
- if the encoding is not supported by the VM
Since:
- 2.1
-
writeLines
public static void writeLines(File file, Collection<?> lines, String lineEnding) throws IOException
-
Writes the
toString()
value of each item in a collection to the specifiedFile
line by line. The default VM encoding and the specified line ending will be used. -
-
Parameters:
-
file
- the file to write to -
lines
- the lines to write,null
entries produce blank lines -
lineEnding
- the line separator to use,null
is system default
Throws:
-
IOException
- in case of an I/O error
Since:
- 1.3
-
writeLines
public static void writeLines(File file, Collection<?> lines, String lineEnding, boolean append) throws IOException
-
Writes the
toString()
value of each item in a collection to the specifiedFile
line by line. The default VM encoding and the specified line ending will be used. -
-
Parameters:
-
file
- the file to write to -
lines
- the lines to write,null
entries produce blank lines -
lineEnding
- the line separator to use,null
is system default -
append
- iftrue
, then the lines will be added to the end of the file rather than overwriting
Throws:
-
IOException
- in case of an I/O error
Since:
- 2.1
-
forceDelete
public static void forceDelete(File file) throws IOException
-
Deletes a file. If file is a directory, delete it and all sub-directories.
The difference between File.delete() and this method are:
- A directory to be deleted does not have to be empty.
- You get exceptions when a file or directory cannot be deleted. (java.io.File methods returns a boolean)
-
-
Parameters:
-
file
- file or directory to delete, must not benull
Throws:
-
NullPointerException
- if the directory isnull
-
FileNotFoundException
- if the file was not found -
IOException
- in case deletion is unsuccessful
-
forceDeleteOnExit
public static void forceDeleteOnExit(File file) throws IOException
- Schedules a file to be deleted when JVM exits. If file is directory delete it and all sub-directories.
-
-
Parameters:
-
file
- file or directory to delete, must not benull
Throws:
-
NullPointerException
- if the file isnull
-
IOException
- in case deletion is unsuccessful
-
forceMkdir
public static void forceMkdir(File directory) throws IOException
- Makes a directory, including any necessary but nonexistent parent directories. If a file already exists with specified name but it is not a directory then an IOException is thrown. If the directory cannot be created (or does not already exist) then an IOException is thrown.
-
-
Parameters:
-
directory
- directory to create, must not benull
Throws:
-
NullPointerException
- if the directory isnull
-
IOException
- if the directory cannot be created or the file already exists but is not a directory
-
sizeOf
public static long sizeOf(File file)
-
Returns the size of the specified file or directory. If the provided
File
is a regular file, then the file's length is returned. If the argument is a directory, then the size of the directory is calculated recursively. If a directory or subdirectory is security restricted, its size will not be included. -
-
Parameters:
-
file
- the regular file or directory to return the size of (must not benull
).
Returns:
- the length of the file, or recursive size of the directory, provided (in bytes). Throws:
-
NullPointerException
- if the file isnull
-
IllegalArgumentException
- if the file does not exist.
Since:
- 2.0
-
sizeOfAsBigInteger
public static BigInteger sizeOfAsBigInteger(File file)
-
Returns the size of the specified file or directory. If the provided
File
is a regular file, then the file's length is returned. If the argument is a directory, then the size of the directory is calculated recursively. If a directory or subdirectory is security restricted, its size will not be included. -
-
Parameters:
-
file
- the regular file or directory to return the size of (must not benull
).
Returns:
- the length of the file, or recursive size of the directory, provided (in bytes). Throws:
-
NullPointerException
- if the file isnull
-
IllegalArgumentException
- if the file does not exist.
Since:
- 2.4
-
sizeOfDirectory
public static long sizeOfDirectory(File directory)
- Counts the size of a directory recursively (sum of the length of all files).
-
-
Parameters:
-
directory
- directory to inspect, must not benull
Returns:
-
size of directory in bytes, 0 if directory is security restricted, a negative number when the real total is greater than
Long.MAX_VALUE
.
Throws:
-
NullPointerException
- if the directory isnull
-
sizeOfDirectoryAsBigInteger
public static BigInteger sizeOfDirectoryAsBigInteger(File directory)
- Counts the size of a directory recursively (sum of the length of all files).
-
-
Parameters:
-
directory
- directory to inspect, must not benull
Returns:
- size of directory in bytes, 0 if directory is security restricted. Throws:
-
NullPointerException
- if the directory isnull
Since:
- 2.4
-
isFileNewer
public static boolean isFileNewer(File file, File reference)
-
Tests if the specified
File
is newer than the referenceFile
. -
-
Parameters:
-
file
- theFile
of which the modification date must be compared, must not benull
-
reference
- theFile
of which the modification date is used, must not benull
Returns:
-
true if the
File
exists and has been modified more recently than the referenceFile
Throws:
-
IllegalArgumentException
- if the file isnull
-
IllegalArgumentException
- if the reference file isnull
or doesn't exist
-
isFileNewer
public static boolean isFileNewer(File file, Date date)
-
Tests if the specified
File
is newer than the specifiedDate
. -
-
Parameters:
-
file
- theFile
of which the modification date must be compared, must not benull
-
date
- the date reference, must not benull
Returns:
-
true if the
File
exists and has been modified after the givenDate
.
Throws:
-
IllegalArgumentException
- if the file isnull
-
IllegalArgumentException
- if the date isnull
-
isFileNewer
public static boolean isFileNewer(File file, long timeMillis)
-
Tests if the specified
File
is newer than the specified time reference. -
-
Parameters:
-
file
- theFile
of which the modification date must be compared, must not benull
-
timeMillis
- the time reference measured in milliseconds since the epoch (00:00:00 GMT, January 1, 1970)
Returns:
-
true if the
File
exists and has been modified after the given time reference.
Throws:
-
IllegalArgumentException
- if the file isnull
-
isFileOlder
public static boolean isFileOlder(File file, File reference)
-
Tests if the specified
File
is older than the referenceFile
. -
-
Parameters:
-
file
- theFile
of which the modification date must be compared, must not benull
-
reference
- theFile
of which the modification date is used, must not benull
Returns:
-
true if the
File
exists and has been modified before the referenceFile
Throws:
-
IllegalArgumentException
- if the file isnull
-
IllegalArgumentException
- if the reference file isnull
or doesn't exist
-
isFileOlder
public static boolean isFileOlder(File file, Date date)
-
Tests if the specified
File
is older than the specifiedDate
. -
-
Parameters:
-
file
- theFile
of which the modification date must be compared, must not benull
-
date
- the date reference, must not benull
Returns:
-
true if the
File
exists and has been modified before the givenDate
.
Throws:
-
IllegalArgumentException
- if the file isnull
-
IllegalArgumentException
- if the date isnull
-
isFileOlder
public static boolean isFileOlder(File file, long timeMillis)
-
Tests if the specified
File
is older than the specified time reference. -
-
Parameters:
-
file
- theFile
of which the modification date must be compared, must not benull
-
timeMillis
- the time reference measured in milliseconds since the epoch (00:00:00 GMT, January 1, 1970)
Returns:
-
true if the
File
exists and has been modified before the given time reference.
Throws:
-
IllegalArgumentException
- if the file isnull
-
checksumCRC32
public static long checksumCRC32(File file) throws IOException
- Computes the checksum of a file using the CRC32 checksum routine. The value of the checksum is returned.
-
-
Parameters:
-
file
- the file to checksum, must not benull
Returns:
- the checksum value Throws:
-
NullPointerException
- if the file or checksum isnull
-
IllegalArgumentException
- if the file is a directory -
IOException
- if an IO error occurs reading the file
Since:
- 1.3
-
checksum
public static Checksum checksum(File file, Checksum checksum) throws IOException
-
Computes the checksum of a file using the specified checksum object. Multiple files may be checked using one
Checksum
instance if desired simply by reusing the same checksum object. For example:long csum = FileUtils.checksum(file, new CRC32()).getValue();
-
-
Parameters:
-
file
- the file to checksum, must not benull
-
checksum
- the checksum object to be used, must not benull
Returns:
- the checksum specified, updated with the content of the file Throws:
-
NullPointerException
- if the file or checksum isnull
-
IllegalArgumentException
- if the file is a directory -
IOException
- if an IO error occurs reading the file
Since:
- 1.3
-
7.move
moveDirectory
public static void moveDirectory(File srcDir, File destDir) throws IOException
-
Moves a directory.
When the destination directory is on another file system, do a "copy and delete".
-
-
Parameters:
-
srcDir
- the directory to be moved -
destDir
- the destination directory
Throws:
-
NullPointerException
- if source or destination isnull
-
FileExistsException
- if the destination directory exists -
IOException
- if source or destination is invalid -
IOException
- if an IO error occurs moving the file
Since:
- 1.4
-
moveDirectoryToDirectory
public static void moveDirectoryToDirectory(File src, File destDir, boolean createDestDir) throws IOException
- Moves a directory to another directory.
-
-
Parameters:
-
src
- the file to be moved -
destDir
- the destination file -
createDestDir
- Iftrue
create the destination directory, otherwise iffalse
throw an IOException
Throws:
-
NullPointerException
- if source or destination isnull
-
FileExistsException
- if the directory exists in the destination directory -
IOException
- if source or destination is invalid -
IOException
- if an IO error occurs moving the file
Since:
- 1.4
-
moveFile
public static void moveFile(File srcFile, File destFile) throws IOException
-
Moves a file.
When the destination file is on another file system, do a "copy and delete".
-
-
Parameters:
-
srcFile
- the file to be moved -
destFile
- the destination file
Throws:
-
NullPointerException
- if source or destination isnull
-
FileExistsException
- if the destination file exists -
IOException
- if source or destination is invalid -
IOException
- if an IO error occurs moving the file
Since:
- 1.4
-
moveFileToDirectory
public static void moveFileToDirectory(File srcFile, File destDir, boolean createDestDir) throws IOException
- Moves a file to a directory.
-
-
Parameters:
-
srcFile
- the file to be moved -
destDir
- the destination file -
createDestDir
- Iftrue
create the destination directory, otherwise iffalse
throw an IOException
Throws:
-
NullPointerException
- if source or destination isnull
-
FileExistsException
- if the destination file exists -
IOException
- if source or destination is invalid -
IOException
- if an IO error occurs moving the file
Since:
- 1.4
-
moveToDirectory
public static void moveToDirectory(File src, File destDir, boolean createDestDir) throws IOException
-
Moves a file or directory to the destination directory.
When the destination is on another file system, do a "copy and delete".
-
-
Parameters:
-
src
- the file or directory to be moved -
destDir
- the destination directory -
createDestDir
- Iftrue
create the destination directory, otherwise iffalse
throw an IOException
Throws:
-
NullPointerException
- if source or destination isnull
-
FileExistsException
- if the directory or file exists in the destination directory -
IOException
- if source or destination is invalid -
IOException
- if an IO error occurs moving the file
Since:
- 1.4
-
isSymlink
public static boolean isSymlink(File file) throws IOException
-
Determines whether the specified file is a Symbolic Link rather than an actual file.
Will not return true if there is a Symbolic Link anywhere in the path, only if the specific file is.
Note: the current implementation always returns
false
if the system is detected as Windows usingFilenameUtils.isSystemWindows()
-
-
Parameters:
-
file
- the file to check
Returns:
- true if the file is a Symbolic Link Throws:
-
IOException
- if an IO error occurs while checking the file
Since:
- 2.0
-