Package org.apache.commons.io.file
Class PathUtils
- java.lang.Object
-
- org.apache.commons.io.file.PathUtils
-
public final class PathUtils extends Object
NIO Path utilities.- Since:
- 2.7
-
-
Field Summary
Fields Modifier and Type Field Description static DeleteOption[]
EMPTY_DELETE_OPTION_ARRAY
EmptyLinkOption
array.static FileVisitOption[]
EMPTY_FILE_VISIT_OPTION_ARRAY
EmptyFileVisitOption
array.static LinkOption[]
EMPTY_LINK_OPTION_ARRAY
EmptyLinkOption
array.static OpenOption[]
EMPTY_OPEN_OPTION_ARRAY
EmptyOpenOption
array.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Counters.PathCounters
cleanDirectory(Path directory)
Cleans a directory including sub-directories without deleting directories.static Counters.PathCounters
cleanDirectory(Path directory, DeleteOption... options)
Cleans a directory including sub-directories without deleting directories.static Counters.PathCounters
copyDirectory(Path sourceDirectory, Path targetDirectory, CopyOption... copyOptions)
Copies a directory to another directory.static Path
copyFile(URL sourceFile, Path targetFile, CopyOption... copyOptions)
Copies a URL to a directory.static Path
copyFileToDirectory(URL sourceFile, Path targetDirectory, CopyOption... copyOptions)
Copies a URL to a directory.static Path
copyFileToDirectory(Path sourceFile, Path targetDirectory, CopyOption... copyOptions)
Copies a file to a directory.static Counters.PathCounters
countDirectory(Path directory)
Counts aspects of a directory including sub-directories.static Counters.PathCounters
delete(Path path)
Deletes a file or directory.static Counters.PathCounters
delete(Path path, DeleteOption... options)
Deletes a file or directory.static Counters.PathCounters
deleteDirectory(Path directory)
Deletes a directory including sub-directories.static Counters.PathCounters
deleteDirectory(Path directory, DeleteOption... options)
Deletes a directory including sub-directories.static Counters.PathCounters
deleteFile(Path file)
Deletes the given file.static Counters.PathCounters
deleteFile(Path file, DeleteOption... options)
Deletes the given file.static boolean
directoryAndFileContentEquals(Path path1, Path path2)
Compares the file sets of two Paths to determine if they are equal or not while considering file contents.static boolean
directoryAndFileContentEquals(Path path1, Path path2, LinkOption[] linkOptions, OpenOption[] openOptions, FileVisitOption[] fileVisitOption)
Compares the file sets of two Paths to determine if they are equal or not while considering file contents.static boolean
directoryContentEquals(Path path1, Path path2)
Compares the file sets of two Paths to determine if they are equal or not without considering file contents.static boolean
directoryContentEquals(Path path1, Path path2, int maxDepth, LinkOption[] linkOptions, FileVisitOption[] fileVisitOptions)
Compares the file sets of two Paths to determine if they are equal or not without considering file contents.static boolean
fileContentEquals(Path path1, Path path2)
Compares the file contents of two Paths to determine if they are equal or not.static boolean
fileContentEquals(Path path1, Path path2, LinkOption[] linkOptions, OpenOption[] openOptions)
Compares the file contents of two Paths to determine if they are equal or not.static List<AclEntry>
getAclEntryList(Path sourcePath)
Reads the access control list from a file attribute view.static boolean
isEmpty(Path path)
Returns whether the given file or directory is empty.static boolean
isEmptyDirectory(Path directory)
Returns whether the directory is empty.static boolean
isEmptyFile(Path file)
Returns whether the given file is empty.static Path
setReadOnly(Path path, boolean readOnly, LinkOption... options)
Sets the given Path to thereadOnly
value.static <T extends FileVisitor<? super Path>>
TvisitFileTree(T visitor, String first, String... more)
PerformsFiles.walkFileTree(Path,FileVisitor)
and returns the given visitor.static <T extends FileVisitor<? super Path>>
TvisitFileTree(T visitor, URI uri)
PerformsFiles.walkFileTree(Path,FileVisitor)
and returns the given visitor.static <T extends FileVisitor<? super Path>>
TvisitFileTree(T visitor, Path directory)
PerformsFiles.walkFileTree(Path,FileVisitor)
and returns the given visitor.static <T extends FileVisitor<? super Path>>
TvisitFileTree(T visitor, Path start, Set<FileVisitOption> options, int maxDepth)
PerformsFiles.walkFileTree(Path,FileVisitor)
and returns the given visitor.
-
-
-
Field Detail
-
EMPTY_DELETE_OPTION_ARRAY
public static final DeleteOption[] EMPTY_DELETE_OPTION_ARRAY
EmptyLinkOption
array.- Since:
- 2.8.0
-
EMPTY_FILE_VISIT_OPTION_ARRAY
public static final FileVisitOption[] EMPTY_FILE_VISIT_OPTION_ARRAY
EmptyFileVisitOption
array.
-
EMPTY_LINK_OPTION_ARRAY
public static final LinkOption[] EMPTY_LINK_OPTION_ARRAY
EmptyLinkOption
array.
-
EMPTY_OPEN_OPTION_ARRAY
public static final OpenOption[] EMPTY_OPEN_OPTION_ARRAY
EmptyOpenOption
array.
-
-
Method Detail
-
cleanDirectory
public static Counters.PathCounters cleanDirectory(Path directory) throws IOException
Cleans a directory including sub-directories without deleting directories.- Parameters:
directory
- directory to clean.- Returns:
- The visitation path counters.
- Throws:
IOException
- if an I/O error is thrown by a visitor method.
-
cleanDirectory
public static Counters.PathCounters cleanDirectory(Path directory, DeleteOption... options) throws IOException
Cleans a directory including sub-directories without deleting directories.- Parameters:
directory
- directory to clean.options
- options indicating how deletion is handled.- Returns:
- The visitation path counters.
- Throws:
IOException
- if an I/O error is thrown by a visitor method.- Since:
- 2.8.0
-
copyDirectory
public static Counters.PathCounters copyDirectory(Path sourceDirectory, Path targetDirectory, CopyOption... copyOptions) throws IOException
Copies a directory to another directory.- Parameters:
sourceDirectory
- The source directory.targetDirectory
- The target directory.copyOptions
- Specifies how the copying should be done.- Returns:
- The visitation path counters.
- Throws:
IOException
- if an I/O error is thrown by a visitor method.
-
copyFile
public static Path copyFile(URL sourceFile, Path targetFile, CopyOption... copyOptions) throws IOException
Copies a URL to a directory.- Parameters:
sourceFile
- The source URL.targetFile
- The target file.copyOptions
- Specifies how the copying should be done.- Returns:
- The target file
- Throws:
IOException
- if an I/O error occurs- See Also:
Files.copy(InputStream, Path, CopyOption...)
-
copyFileToDirectory
public static Path copyFileToDirectory(Path sourceFile, Path targetDirectory, CopyOption... copyOptions) throws IOException
Copies a file to a directory.- Parameters:
sourceFile
- The source file.targetDirectory
- The target directory.copyOptions
- Specifies how the copying should be done.- Returns:
- The target file
- Throws:
IOException
- if an I/O error occurs- See Also:
Files.copy(Path, Path, CopyOption...)
-
copyFileToDirectory
public static Path copyFileToDirectory(URL sourceFile, Path targetDirectory, CopyOption... copyOptions) throws IOException
Copies a URL to a directory.- Parameters:
sourceFile
- The source URL.targetDirectory
- The target directory.copyOptions
- Specifies how the copying should be done.- Returns:
- The target file
- Throws:
IOException
- if an I/O error occurs- See Also:
Files.copy(InputStream, Path, CopyOption...)
-
countDirectory
public static Counters.PathCounters countDirectory(Path directory) throws IOException
Counts aspects of a directory including sub-directories.- Parameters:
directory
- directory to delete.- Returns:
- The visitor used to count the given directory.
- Throws:
IOException
- if an I/O error is thrown by a visitor method.
-
delete
public static Counters.PathCounters delete(Path path) throws IOException
Deletes a file or directory. If the path is a directory, delete it and all sub-directories.The difference between File.delete() and this method are:
- A directory to delete does not have to be empty.
- You get exceptions when a file or directory cannot be deleted;
File.delete()
returns a boolean.
- Parameters:
path
- file or directory to delete, must not benull
- Returns:
- The visitor used to delete the given directory.
- Throws:
NullPointerException
- if the directory isnull
IOException
- if an I/O error is thrown by a visitor method or if an I/O error occurs.
-
delete
public static Counters.PathCounters delete(Path path, DeleteOption... options) throws IOException
Deletes a file or directory. If the path is a directory, delete it and all sub-directories.The difference between File.delete() and this method are:
- A directory to delete does not have to be empty.
- You get exceptions when a file or directory cannot be deleted;
File.delete()
returns a boolean.
- Parameters:
path
- file or directory to delete, must not benull
options
- options indicating how deletion is handled.- Returns:
- The visitor used to delete the given directory.
- Throws:
NullPointerException
- if the directory isnull
IOException
- if an I/O error is thrown by a visitor method or if an I/O error occurs.- Since:
- 2.8.0
-
deleteDirectory
public static Counters.PathCounters deleteDirectory(Path directory) throws IOException
Deletes a directory including sub-directories.- Parameters:
directory
- directory to delete.- Returns:
- The visitor used to delete the given directory.
- Throws:
IOException
- if an I/O error is thrown by a visitor method.
-
deleteDirectory
public static Counters.PathCounters deleteDirectory(Path directory, DeleteOption... options) throws IOException
Deletes a directory including sub-directories.- Parameters:
directory
- directory to delete.options
- options indicating how deletion is handled.- Returns:
- The visitor used to delete the given directory.
- Throws:
IOException
- if an I/O error is thrown by a visitor method.- Since:
- 2.8.0
-
deleteFile
public static Counters.PathCounters deleteFile(Path file) throws IOException
Deletes the given file.- Parameters:
file
- The file to delete.- Returns:
- A visitor with path counts set to 1 file, 0 directories, and the size of the deleted file.
- Throws:
IOException
- if an I/O error occurs.NoSuchFileException
- if the file is a directory.
-
deleteFile
public static Counters.PathCounters deleteFile(Path file, DeleteOption... options) throws IOException
Deletes the given file.- Parameters:
file
- The file to delete.options
- options indicating how deletion is handled.- Returns:
- A visitor with path counts set to 1 file, 0 directories, and the size of the deleted file.
- Throws:
IOException
- if an I/O error occurs.NoSuchFileException
- if the file is a directory.- Since:
- 2.8.0
-
directoryAndFileContentEquals
public static boolean directoryAndFileContentEquals(Path path1, Path path2) throws IOException
Compares the file sets of two Paths to determine if they are equal or not while considering file contents. The comparison includes all files in all sub-directories.- Parameters:
path1
- The first directory.path2
- The second directory.- Returns:
- Whether the two directories contain the same files while considering file contents.
- Throws:
IOException
- if an I/O error is thrown by a visitor method
-
directoryAndFileContentEquals
public static boolean directoryAndFileContentEquals(Path path1, Path path2, LinkOption[] linkOptions, OpenOption[] openOptions, FileVisitOption[] fileVisitOption) throws IOException
Compares the file sets of two Paths to determine if they are equal or not while considering file contents. The comparison includes all files in all sub-directories.- Parameters:
path1
- The first directory.path2
- The second directory.linkOptions
- options to follow links.openOptions
- options to open files.fileVisitOption
- options to configure traversal.- Returns:
- Whether the two directories contain the same files while considering file contents.
- Throws:
IOException
- if an I/O error is thrown by a visitor method
-
directoryContentEquals
public static boolean directoryContentEquals(Path path1, Path path2) throws IOException
Compares the file sets of two Paths to determine if they are equal or not without considering file contents. The comparison includes all files in all sub-directories.- Parameters:
path1
- The first directory.path2
- The second directory.- Returns:
- Whether the two directories contain the same files without considering file contents.
- Throws:
IOException
- if an I/O error is thrown by a visitor method
-
directoryContentEquals
public static boolean directoryContentEquals(Path path1, Path path2, int maxDepth, LinkOption[] linkOptions, FileVisitOption[] fileVisitOptions) throws IOException
Compares the file sets of two Paths to determine if they are equal or not without considering file contents. The comparison includes all files in all sub-directories.- Parameters:
path1
- The first directory.path2
- The second directory.maxDepth
- SeeFiles.walkFileTree(Path,Set,int,FileVisitor)
.linkOptions
- options to follow links.fileVisitOptions
- options to configure the traversal- Returns:
- Whether the two directories contain the same files without considering file contents.
- Throws:
IOException
- if an I/O error is thrown by a visitor method
-
fileContentEquals
public static boolean fileContentEquals(Path path1, Path path2) throws IOException
Compares the file contents of two Paths to determine if they are equal or not.File content is accessed through
Files.newInputStream(Path,OpenOption...)
.- Parameters:
path1
- the first stream.path2
- the second stream.- Returns:
- true if the content of the streams are equal or they both don't exist, false otherwise.
- Throws:
NullPointerException
- if either input is null.IOException
- if an I/O error occurs.- See Also:
FileUtils.contentEquals(java.io.File, java.io.File)
-
fileContentEquals
public static boolean fileContentEquals(Path path1, Path path2, LinkOption[] linkOptions, OpenOption[] openOptions) throws IOException
Compares the file contents of two Paths to determine if they are equal or not.File content is accessed through
Files.newInputStream(Path,OpenOption...)
.- Parameters:
path1
- the first stream.path2
- the second stream.linkOptions
- options specifying how files are followed.openOptions
- options specifying how files are opened.- Returns:
- true if the content of the streams are equal or they both don't exist, false otherwise.
- Throws:
NullPointerException
- if either input is null.IOException
- if an I/O error occurs.- See Also:
FileUtils.contentEquals(java.io.File, java.io.File)
-
getAclEntryList
public static List<AclEntry> getAclEntryList(Path sourcePath) throws IOException
Reads the access control list from a file attribute view.- Parameters:
sourcePath
- the path to the file.- Returns:
- a file attribute view of the specified type, or null ifthe attribute view type is not available.
- Throws:
IOException
- if an I/O error occurs.- Since:
- 2.8.0
-
isEmpty
public static boolean isEmpty(Path path) throws IOException
Returns whether the given file or directory is empty.- Parameters:
path
- the the given file or directory to query.- Returns:
- whether the given file or directory is empty.
- Throws:
IOException
- if an I/O error occurs
-
isEmptyDirectory
public static boolean isEmptyDirectory(Path directory) throws IOException
Returns whether the directory is empty.- Parameters:
directory
- the the given directory to query.- Returns:
- whether the given directory is empty.
- Throws:
IOException
- if an I/O error occurs
-
isEmptyFile
public static boolean isEmptyFile(Path file) throws IOException
Returns whether the given file is empty.- Parameters:
file
- the the given file to query.- Returns:
- whether the given file is empty.
- Throws:
IOException
- if an I/O error occurs
-
setReadOnly
public static Path setReadOnly(Path path, boolean readOnly, LinkOption... options) throws IOException
Sets the given Path to thereadOnly
value.This behavior is OS dependent.
- Parameters:
path
- The path to set.readOnly
- true for read-only, false for not read-only.options
- options indicating how symbolic links are handled.- Returns:
- The given path.
- Throws:
IOException
- if an I/O error occurs.- Since:
- 2.8.0
-
visitFileTree
public static <T extends FileVisitor<? super Path>> T visitFileTree(T visitor, Path directory) throws IOException
PerformsFiles.walkFileTree(Path,FileVisitor)
and returns the given visitor. Note thatFiles.walkFileTree(Path,FileVisitor)
returns the given path.- Type Parameters:
T
- SeeFiles.walkFileTree(Path,FileVisitor)
.- Parameters:
visitor
- SeeFiles.walkFileTree(Path,FileVisitor)
.directory
- SeeFiles.walkFileTree(Path,FileVisitor)
.- Returns:
- the given visitor.
- Throws:
IOException
- if an I/O error is thrown by a visitor method
-
visitFileTree
public static <T extends FileVisitor<? super Path>> T visitFileTree(T visitor, Path start, Set<FileVisitOption> options, int maxDepth) throws IOException
PerformsFiles.walkFileTree(Path,FileVisitor)
and returns the given visitor. Note thatFiles.walkFileTree(Path,FileVisitor)
returns the given path.- Type Parameters:
T
- SeeFiles.walkFileTree(Path,Set,int,FileVisitor)
.- Parameters:
start
- SeeFiles.walkFileTree(Path,Set,int,FileVisitor)
.options
- SeeFiles.walkFileTree(Path,Set,int,FileVisitor)
.maxDepth
- SeeFiles.walkFileTree(Path,Set,int,FileVisitor)
.visitor
- SeeFiles.walkFileTree(Path,Set,int,FileVisitor)
.- Returns:
- the given visitor.
- Throws:
IOException
- if an I/O error is thrown by a visitor method
-
visitFileTree
public static <T extends FileVisitor<? super Path>> T visitFileTree(T visitor, String first, String... more) throws IOException
PerformsFiles.walkFileTree(Path,FileVisitor)
and returns the given visitor. Note thatFiles.walkFileTree(Path,FileVisitor)
returns the given path.- Type Parameters:
T
- SeeFiles.walkFileTree(Path,FileVisitor)
.- Parameters:
visitor
- SeeFiles.walkFileTree(Path,FileVisitor)
.first
- SeePaths.get(String,String[])
.more
- SeePaths.get(String,String[])
.- Returns:
- the given visitor.
- Throws:
IOException
- if an I/O error is thrown by a visitor method
-
visitFileTree
public static <T extends FileVisitor<? super Path>> T visitFileTree(T visitor, URI uri) throws IOException
PerformsFiles.walkFileTree(Path,FileVisitor)
and returns the given visitor. Note thatFiles.walkFileTree(Path,FileVisitor)
returns the given path.- Type Parameters:
T
- SeeFiles.walkFileTree(Path,FileVisitor)
.- Parameters:
visitor
- SeeFiles.walkFileTree(Path,FileVisitor)
.uri
- SeePaths.get(URI)
.- Returns:
- the given visitor.
- Throws:
IOException
- if an I/O error is thrown by a visitor method
-
-