Constructor and Description |
---|
PathUtil() |
Modifier and Type | Method and Description |
---|---|
static Path |
copy(Path src,
Path target,
CopyOption... options)
拷贝文件或目录,拷贝规则为:
源文件为目录,目标也为目录或不存在,则拷贝整个目录到目标目录下
源文件为文件,目标为目录或不存在,则拷贝文件到目标目录下
源文件为文件,目标也为文件,则在
StandardCopyOption.REPLACE_EXISTING 情况下覆盖之
|
static Path |
copyContent(Path src,
Path target,
CopyOption... options)
拷贝目录下的所有文件或目录到目标目录中,此方法不支持文件对文件的拷贝。
|
static Path |
copyFile(InputStream src,
Path target,
CopyOption... options)
|
static Path |
copyFile(Path src,
Path target,
CopyOption... options)
|
static Path |
copyFile(Path src,
Path dest,
StandardCopyOption... options)
|
static Path |
copyFile(Resource src,
Path target,
CopyOption... options)
|
static Path |
createTempFile(String prefix,
String suffix,
Path dir)
创建临时文件
创建后的文件名为 prefix[Random].suffix From com.jodd.io.FileUtil |
static boolean |
del(Path path)
删除文件或者文件夹,不追踪软链
注意:删除文件夹时不会判断文件夹是否为空,如果不空则递归删除子文件或文件夹 某个文件删除失败会终止删除操作 |
protected static void |
delFile(Path path)
删除文件或空目录,不追踪软链
|
static boolean |
equals(Path file1,
Path file2)
检查两个文件是否是同一个文件
所谓文件相同,是指Path对象是否指向同一个文件或文件夹 |
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)
获得输出流
|
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 |
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 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 |
static Path |
subPath(Path path,
int fromIndex,
int toIndex)
获取指定位置的子路径部分,支持负数,例如起始为-1表示从后数第一个节点位置
|
static Path |
toAbsNormal(Path path)
将Path路径转换为标准的绝对路径
|
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 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 boolean del(Path path) throws IORuntimeException
path
- 文件对象IORuntimeException
- IO异常public static Path copyFile(Resource src, Path target, CopyOption... options) throws IORuntimeException
Files.copy(InputStream, Path, CopyOption...)
方法拷贝文件src
- 源文件流target
- 目标文件或目录,如果为目录使用与源文件相同的文件名options
- StandardCopyOption
IORuntimeException
- IO异常public static Path copyFile(InputStream src, Path target, CopyOption... options) throws IORuntimeException
Files.copy(InputStream, Path, CopyOption...)
方法拷贝文件src
- 源文件流,使用后不闭流target
- 目标文件或目录,如果为目录使用与源文件相同的文件名options
- StandardCopyOption
IORuntimeException
- IO异常public static Path copyFile(Path src, Path dest, StandardCopyOption... options) throws IORuntimeException
Files.copy(Path, Path, CopyOption...)
方法拷贝文件src
- 源文件路径,如果为目录只在目标中创建新目录dest
- 目标文件或目录,如果为目录使用与源文件相同的文件名options
- StandardCopyOption
IORuntimeException
- IO异常public static Path copyFile(Path src, Path target, CopyOption... options) throws IORuntimeException
Files.copy(Path, Path, CopyOption...)
方法拷贝文件src
- 源文件路径,如果为目录只在目标中创建新目录target
- 目标文件或目录,如果为目录使用与源文件相同的文件名options
- StandardCopyOption
IORuntimeException
- IO异常public static Path copy(Path src, Path target, CopyOption... options) throws IORuntimeException
StandardCopyOption.REPLACE_EXISTING
情况下覆盖之src
- 源文件路径,如果为目录会在目标中创建新目录target
- 目标文件或目录,如果为目录使用与源文件相同的文件名options
- StandardCopyOption
IORuntimeException
- IO异常public static Path copyContent(Path src, Path target, CopyOption... options) throws IORuntimeException
src
- 源文件路径,如果为目录只在目标中创建新目录target
- 目标目录,如果为目录使用与源文件相同的文件名options
- StandardCopyOption
IORuntimeException
- IO异常public static boolean isDirectory(Path path)
path
- Path
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) throws IORuntimeException
path
- PathIORuntimeException
- 文件未找到public static Path rename(Path path, String newName, boolean isOverride)
FileUtil.rename(file, "aaa.jpg", false) xx/xx.png =》xx/aaa.jpg
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
file1
- 文件1file2
- 文件2IORuntimeException
- 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 exists(Path path, boolean isFollowLinks)
path
- 文件isFollowLinks
- 是否跟踪软链(快捷方式)public static boolean isExistsAndNotDirectory(Path path, boolean isFollowLinks)
null
,返回false
false
path
- Path
isFollowLinks
- 是否追踪到软链对应的真实地址public static boolean isSub(Path parent, Path sub)
parent
- 父目录sub
- 子目录public static Path toAbsNormal(Path path)
path
- 文件或目录Pathpublic 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异常protected static void delFile(Path path) throws IOException
path
- 文件对象IOException
- IO异常public static LinkOption[] getLinkOptions(boolean isFollowLinks)
isFollowLinks
- 是否追踪软链public static Set<FileVisitOption> getFileVisitOption(boolean isFollowLinks)
isFollowLinks
- 是否追踪软链Copyright © 2024. All rights reserved.