public class PathUtil extends Object
Constructor and Description |
---|
PathUtil() |
Modifier and Type | Method and Description |
---|---|
static void |
clean(Path path)
清空目录
|
static Path |
copy(InputStream src,
Path target,
CopyOption... options)
|
static long |
copy(Path src,
OutputStream out)
|
static Path |
copy(Path src,
Path target,
CopyOption... options)
复制src到target中
src路径和target路径相同时,不执行操作
src为文件,target为已存在目录,则拷贝到目录下,文件名不变。
|
static Path |
copy(Resource src,
Path target,
CopyOption... options)
拷贝资源到目标文件
如果src为
FileResource ,调用文件拷贝。 |
static Path |
copyContent(Path src,
Path target,
CopyOption... options)
复制src的内容到target中
src路径和target路径相同时,不执行操作
src为文件,target为已存在目录,则拷贝到目录下,文件名不变。
|
static Path |
createTempFile(String prefix,
String suffix,
Path dir)
创建临时文件
创建后的文件名为 prefix[Random].suffix From com.jodd.io.FileUtil |
static void |
del(Path path)
删除文件或者文件夹,不追踪软链
注意:删除文件夹时不会判断文件夹是否为空,如果不空则递归删除子文件或文件夹 某个文件删除失败会终止删除操作 |
static boolean |
equals(Path file1,
Path file2)
检查两个文件是否是同一个文件
所谓文件相同,是指Path对象是否指向同一个文件或文件夹 当两个文件都为 null 时,返回true
当两个文件都存在时,检查是否为同一个文件
当两个文件都不存在时,检查Path对象是否equals
|
static boolean |
exists(Path path,
boolean isFollowLinks)
判断文件或目录是否存在
|
static BasicFileAttributes |
getAttributes(Path path,
boolean isFollowLinks)
获取文件属性
|
static Set<FileVisitOption> |
getFileVisitOption(boolean isFollowLinks)
构建是否追踪软链的选项
|
static BufferedInputStream |
getInputStream(Path path)
获得输入流
|
static Path |
getLastPathEle(Path path)
获取指定位置的最后一个子路径部分
|
static LinkOption[] |
getLinkOptions(boolean isFollowLinks)
构建是否追踪软链的选项
|
static String |
getMimeType(Path file)
获得文件的MimeType
|
static String |
getName(Path path)
获取
Path 文件名 |
static BufferedOutputStream |
getOutputStream(Path path,
OpenOption... options)
获得输出流
|
static Path |
getPathEle(Path path,
int index)
获取指定位置的子路径部分,支持负数,例如index为-1表示从后数第一个节点位置
|
static BufferedReader |
getReader(Path path,
Charset charset)
获得一个文件读取器
|
static BufferedReader |
getUtf8Reader(Path path)
获得一个文件读取器
|
static boolean |
isDirectory(Path path)
判断是否为目录,如果file为null,则返回false
此方法不会追踪到软链对应的真实地址,即软链被当作文件 |
static boolean |
isDirectory(Path path,
boolean isFollowLinks)
判断是否为目录,如果file为null,则返回false
|
static boolean |
isDirEmpty(Path dirPath)
目录是否为空
|
static boolean |
isExistsAndNotDirectory(Path path,
boolean isFollowLinks)
判断是否存在且为非目录
如果path为
null ,返回false
如果path不存在,返回false
|
static boolean |
isFile(Path path,
boolean isFollowLinks)
判断是否为文件,如果file为null,则返回false
|
static boolean |
isOther(Path path)
判断是否为其它类型文件,即非文件、非目录、非链接。
|
static boolean |
isSameFile(Path file1,
Path file2)
检查两个文件是否是同一个文件
所谓文件相同,是指Path对象是否指向同一个文件或文件夹 |
static boolean |
isSub(Path parent,
Path sub)
判断给定的目录是否为给定文件或文件夹的子目录
|
static boolean |
isSymlink(Path path)
判断是否为符号链接文件
|
static List<File> |
loopFiles(Path path,
FileFilter fileFilter)
递归遍历目录以及子目录中的所有文件
如果提供path为文件,直接返回过滤结果 |
static List<File> |
loopFiles(Path path,
int maxDepth,
boolean isFollowLinks,
FileFilter fileFilter)
递归遍历目录以及子目录中的所有文件
如果提供path为文件,直接返回过滤结果 |
static List<File> |
loopFiles(Path path,
int maxDepth,
FileFilter fileFilter)
递归遍历目录以及子目录中的所有文件
如果提供path为文件,直接返回过滤结果 |
static Path |
mkdir(Path dir)
创建所给目录及其父目录
|
static Path |
mkParentDirs(Path path)
创建所给文件或目录的父目录
|
static Path |
move(Path src,
Path target,
boolean isOverride)
移动文件或目录到目标中,例如:
如果src和target为同一文件或目录,直接返回target。
|
static Path |
moveContent(Path src,
Path target,
boolean isOverride)
移动文件或目录内容到目标中,例如:
如果src为文件,target为目录,则移动到目标目录下,存在同名文件则按照是否覆盖参数执行。
|
static Path |
of(Path firstPath,
Path... paths)
拼接多个路径,
|
static Path |
of(String firstPath,
String... paths)
拼接多个路径
|
static byte[] |
readBytes(Path path)
读取文件的所有内容为byte数组
|
static Path |
rename(Path path,
String newName,
boolean isOverride)
修改文件或目录的文件名,不变更路径,只是简单修改文件名
FileUtil.rename(file, "aaa.jpg", false) xx/xx.png =》xx/aaa.jpg FileUtil.rename(dir, "dir2", false) xx/xx/ =》xx/dir2/ |
static Path |
subPath(Path path,
int fromIndex,
int toIndex)
获取指定位置的子路径部分,支持负数,例如起始为-1表示从后数第一个节点位置
|
static Path |
toAbsNormal(Path path)
|
static Path |
toRealPath(Path path)
获取实际路径,路径文件必须存在
如果给定Path是软链接(符号链接),则返回指向的实际链接 如果路径不存在,会直接抛出NoSuchFileException异常 无论给定是何种类型的路径,返回都是唯一的路径(总是equals) |
static void |
walkFiles(Path start,
FileVisitor<? super Path> visitor)
遍历指定path下的文件并做处理
|
static void |
walkFiles(Path start,
int maxDepth,
boolean isFollowLinks,
FileVisitor<? super Path> visitor)
遍历指定path下的文件并做处理
|
static void |
walkFiles(Path start,
int maxDepth,
FileVisitor<? super Path> visitor)
遍历指定path下的文件并做处理
|
public static Path of(String firstPath, String... paths)
firstPath
- 第一个路径paths
- 其它路径Paths.get(String, String...)
public static Path of(Path firstPath, Path... paths)
firstPath
- 第一个路径paths
- 其它路径public static boolean isDirEmpty(Path dirPath)
dirPath
- 目录IORuntimeException
- IOExceptionpublic static List<File> loopFiles(Path path, FileFilter fileFilter)
path
- 当前遍历文件或目录fileFilter
- 文件过滤规则对象,选择要保留的文件,只对文件有效,不过滤目录,null表示接收全部文件public static List<File> loopFiles(Path path, int maxDepth, FileFilter fileFilter)
path
- 当前遍历文件或目录maxDepth
- 遍历最大深度,-1表示遍历到没有目录为止fileFilter
- 文件过滤规则对象,选择要保留的文件,只对文件有效,不过滤目录,null表示接收全部文件public static List<File> loopFiles(Path path, int maxDepth, boolean isFollowLinks, FileFilter fileFilter)
path
- 当前遍历文件或目录maxDepth
- 遍历最大深度,-1表示遍历到没有目录为止isFollowLinks
- 是否跟踪软链(快捷方式)fileFilter
- 文件过滤规则对象,选择要保留的文件,只对文件有效,不过滤目录,null表示接收全部文件public static void walkFiles(Path start, FileVisitor<? super Path> visitor)
start
- 起始路径,必须为目录visitor
- FileVisitor
接口,用于自定义在访问文件时,访问目录前后等节点做的操作Files.walkFileTree(Path, java.util.Set, int, FileVisitor)
public static void walkFiles(Path start, int maxDepth, FileVisitor<? super Path> visitor)
start
- 起始路径,必须为目录maxDepth
- 最大遍历深度,-1表示不限制深度visitor
- FileVisitor
接口,用于自定义在访问文件时,访问目录前后等节点做的操作Files.walkFileTree(Path, java.util.Set, int, FileVisitor)
public static void walkFiles(Path start, int maxDepth, boolean isFollowLinks, FileVisitor<? super Path> visitor)
start
- 起始路径,必须为目录maxDepth
- 最大遍历深度,-1表示不限制深度visitor
- FileVisitor
接口,用于自定义在访问文件时,访问目录前后等节点做的操作isFollowLinks
- 是否追踪到软链对应的真实地址Files.walkFileTree(Path, java.util.Set, int, FileVisitor)
public static void del(Path path) throws IORuntimeException
path
- 文件对象IORuntimeException
- IO异常public static void clean(Path path)
path
- 目录路径public static Path copy(Resource src, Path target, CopyOption... options) throws IORuntimeException
FileResource
,调用文件拷贝。Files.copy(InputStream, Path, CopyOption...)
。src
- 源文件资源Resource
实现target
- 目标文件或目录,如果为目录使用与源文件相同的文件名options
- StandardCopyOption
IORuntimeException
- IO异常public static Path copy(InputStream src, Path target, CopyOption... options) throws IORuntimeException
Files.copy(InputStream, Path, CopyOption...)
方法拷贝文件src
- 源文件流,使用后不闭流target
- 目标文件或目录,如果为目录使用与源文件相同的文件名options
- StandardCopyOption
IORuntimeException
- IO异常public static long copy(Path src, OutputStream out) throws IORuntimeException
Files.copy(InputStream, Path, CopyOption...)
方法拷贝文件src
- 源文件流,使用后不闭流out
- 目标流IORuntimeException
- IO异常public static Path copy(Path src, Path target, CopyOption... options) throws IORuntimeException
CopyOption
设为覆盖时会被覆盖,默认不覆盖,抛出FileAlreadyExistsException
IllegalArgumentException
src
- 源文件路径,如果为目录会在目标中创建新目录target
- 目标文件或目录,如果为目录使用与源文件相同的文件名options
- StandardCopyOption
IORuntimeException
- IO异常public static Path copyContent(Path src, Path target, CopyOption... options) throws IORuntimeException
CopyOption
设为覆盖时会被覆盖,默认不覆盖,抛出FileAlreadyExistsException
src
- 源文件路径,如果为目录只在目标中创建新目录target
- 目标目录,如果为目录使用与源文件相同的文件名options
- StandardCopyOption
IORuntimeException
- IO异常public static boolean isDirectory(Path path)
path
- Path
public static boolean isExistsAndNotDirectory(Path path, boolean isFollowLinks)
null
,返回false
false
path
- Path
isFollowLinks
- 是否追踪到软链对应的真实地址public static boolean isDirectory(Path path, boolean isFollowLinks)
path
- Path
isFollowLinks
- 是否追踪到软链对应的真实地址public static Path getPathEle(Path path, int index)
path
- 路径index
- 路径节点位置,支持负数(负数从后向前计数)public static Path getLastPathEle(Path path)
path
- 路径public static Path subPath(Path path, int fromIndex, int toIndex)
path
- 路径fromIndex
- 起始路径节点(包括)toIndex
- 结束路径节点(不包括)public static BasicFileAttributes getAttributes(Path path, boolean isFollowLinks) throws IORuntimeException
path
- 文件路径Path
isFollowLinks
- 是否跟踪到软链对应的真实路径BasicFileAttributes
IORuntimeException
- IO异常public static BufferedInputStream getInputStream(Path path) throws IORuntimeException
path
- PathIORuntimeException
- 文件未找到public static BufferedReader getUtf8Reader(Path path) throws IORuntimeException
path
- 文件PathIORuntimeException
- IO异常public static BufferedReader getReader(Path path, Charset charset) throws IORuntimeException
path
- 文件Pathcharset
- 字符集IORuntimeException
- IO异常public static byte[] readBytes(Path path)
path
- 文件public static BufferedOutputStream getOutputStream(Path path, OpenOption... options) throws IORuntimeException
path
- Pathoptions
- 选项,如追加模式传StandardOpenOption.APPEND
IORuntimeException
- 文件未找到public static Path rename(Path path, String newName, boolean isOverride)
FileUtil.rename(file, "aaa.jpg", false) xx/xx.png =》xx/aaa.jpg FileUtil.rename(dir, "dir2", false) xx/xx/ =》xx/dir2/
path
- 被修改的文件newName
- 新的文件名,包括扩展名isOverride
- 是否覆盖目标文件public static Path move(Path src, Path target, boolean isOverride)
IllegalArgumentException
src
- 源文件或目录路径target
- 目标路径,如果为目录,则移动到此目录下isOverride
- 是否覆盖目标文件public static Path moveContent(Path src, Path target, boolean isOverride)
IllegalArgumentException
src
- 源文件或目录路径target
- 目标路径,如果为目录,则移动到此目录下isOverride
- 是否覆盖目标文件public static boolean equals(Path file1, Path file2) throws IORuntimeException
null
时,返回true
file1
- 文件1file2
- 文件2IORuntimeException
- IO异常Files.isSameFile(Path, Path)
public static boolean isSameFile(Path file1, Path file2) throws IORuntimeException
file1
- 文件1,必须存在file2
- 文件2,必须存在IORuntimeException
- IO异常Files.isSameFile(Path, Path)
public static boolean isFile(Path path, boolean isFollowLinks)
path
- 文件isFollowLinks
- 是否跟踪软链(快捷方式)Files.isRegularFile(Path, LinkOption...)
public static boolean isSymlink(Path path)
path
- 被检查的文件public static boolean isOther(Path path)
path
- 被检查的文件(非空)public static boolean exists(Path path, boolean isFollowLinks)
path
- 文件,null
返回false
isFollowLinks
- 是否跟踪软链(快捷方式)public static boolean isSub(Path parent, Path sub)
parent
- 父目录sub
- 子目录public static Path toAbsNormal(Path path)
path
- 文件或目录Pathpublic static Path toRealPath(Path path) throws IORuntimeException
path
- 路径IORuntimeException
- IO异常,如文件不存在等public static String getMimeType(Path file)
file
- 文件Files.probeContentType(Path)
public static Path mkParentDirs(Path path)
path
- 文件或目录public static String getName(Path path)
Path
文件名path
- Path
public static Path createTempFile(String prefix, String suffix, Path dir) throws IORuntimeException
prefix
- 前缀,至少3个字符suffix
- 后缀,如果null则使用默认.tmpdir
- 临时文件创建的所在目录IORuntimeException
- IO异常public static LinkOption[] getLinkOptions(boolean isFollowLinks)
isFollowLinks
- 是否追踪软链public static Set<FileVisitOption> getFileVisitOption(boolean isFollowLinks)
isFollowLinks
- 是否追踪软链Copyright © 2025. All rights reserved.