cn.hutool.core.io.FileUtil.isWindows() |
是否为Windows环境
|
cn.hutool.core.io.FileUtil.ls(java.lang.String) |
列出目录文件<br> 给定的绝对路径不能是压缩包中的路径
|
cn.hutool.core.io.FileUtil.isEmpty(java.io.File) |
文件是否为空<br> 目录:里面没有文件时为空 文件:文件大小为0时为空
|
cn.hutool.core.io.FileUtil.isNotEmpty(java.io.File) |
文件是否为非空<br> 目录:里面没有文件时为空 文件:文件大小为0时为空
|
cn.hutool.core.io.FileUtil.isDirEmpty(java.io.File) |
目录是否为空
|
cn.hutool.core.io.FileUtil.loopFiles(java.lang.String, java.io.FileFilter) |
递归遍历目录以及子目录中的所有文件<br> 如果提供file为文件,直接返回过滤结果
|
cn.hutool.core.io.FileUtil.loopFiles(java.io.File, java.io.FileFilter) |
递归遍历目录以及子目录中的所有文件<br> 如果提供file为文件,直接返回过滤结果
|
cn.hutool.core.io.FileUtil.walkFiles(java.io.File, java.util.function.Consumer) |
递归遍历目录并处理目录下的文件,可以处理目录或文件:
- 非目录则直接调用{@link Consumer}处理
- 目录则递归调用此方法处理
|
cn.hutool.core.io.FileUtil.loopFiles(java.io.File, int, java.io.FileFilter) |
递归遍历目录以及子目录中的所有文件<br> 如果提供file为文件,直接返回过滤结果
|
cn.hutool.core.io.FileUtil.loopFiles(java.lang.String) |
递归遍历目录以及子目录中的所有文件
|
cn.hutool.core.io.FileUtil.loopFiles(java.io.File) |
递归遍历目录以及子目录中的所有文件
|
cn.hutool.core.io.FileUtil.listFileNames(java.lang.String) |
获得指定目录下所有文件名<br> 不会扫描子目录
|
cn.hutool.core.io.FileUtil.newFile(java.lang.String) |
创建File对象,相当于调用new File(),不做任何处理
|
cn.hutool.core.io.FileUtil.file(java.lang.String) |
创建File对象,自动识别相对或绝对路径,相对路径将自动从ClassPath下寻找
|
cn.hutool.core.io.FileUtil.file(java.lang.String, java.lang.String) |
创建File对象<br> 此方法会检查slip漏洞,漏洞说明见http://blog.nsfocus.net/zip-slip-2/
|
cn.hutool.core.io.FileUtil.file(java.io.File, java.lang.String) |
创建File对象<br> 根据的路径构建文件,在Win下直接构建,在Linux下拆分路径单独构建 此方法会检查slip漏洞,漏洞说明见http://blog.nsfocus.net/zip-slip-2/
|
cn.hutool.core.io.FileUtil.file(java.io.File, java.lang.String[]) |
通过多层目录参数创建文件<br> 此方法会检查slip漏洞,漏洞说明见http://blog.nsfocus.net/zip-slip-2/
|
cn.hutool.core.io.FileUtil.file(java.lang.String[]) |
|
cn.hutool.core.io.FileUtil.file(java.net.URI) |
创建File对象
|
cn.hutool.core.io.FileUtil.file(java.net.URL) |
创建File对象
|
cn.hutool.core.io.FileUtil.getTmpDirPath() |
获取临时文件路径(绝对路径)
|
cn.hutool.core.io.FileUtil.getTmpDir() |
获取临时文件目录
|
cn.hutool.core.io.FileUtil.getUserHomePath() |
获取用户路径(绝对路径)
|
cn.hutool.core.io.FileUtil.getUserHomeDir() |
获取用户目录
|
cn.hutool.core.io.FileUtil.exist(java.lang.String) |
判断文件是否存在,如果path为null,则返回false
|
cn.hutool.core.io.FileUtil.exist(java.io.File) |
判断文件是否存在,如果file为null,则返回false
|
cn.hutool.core.io.FileUtil.exist(java.lang.String, java.lang.String) |
是否存在匹配文件
|
cn.hutool.core.io.FileUtil.lastModifiedTime(java.io.File) |
指定文件最后修改时间
|
cn.hutool.core.io.FileUtil.lastModifiedTime(java.lang.String) |
指定路径文件最后修改时间
|
cn.hutool.core.io.FileUtil.size(java.io.File) |
计算目录或文件的总大小<br> 当给定对象为文件时,直接调用 {@link File#length()}<br> 当给定对象为目录时,遍历目录下的所有文件和目录,递归计算其大小,求和返回
|
cn.hutool.core.io.FileUtil.newerThan(java.io.File, java.io.File) |
给定文件或目录的最后修改时间是否晚于给定时间
|
cn.hutool.core.io.FileUtil.newerThan(java.io.File, long) |
给定文件或目录的最后修改时间是否晚于给定时间
|
cn.hutool.core.io.FileUtil.touch(java.lang.String) |
创建文件及其父目录,如果这个文件存在,直接返回这个文件<br> 此方法不对File对象类型做判断,如果File不存在,无法判断其类型
|
cn.hutool.core.io.FileUtil.touch(java.io.File) |
创建文件及其父目录,如果这个文件存在,直接返回这个文件<br> 此方法不对File对象类型做判断,如果File不存在,无法判断其类型
|
cn.hutool.core.io.FileUtil.touch(java.io.File, java.lang.String) |
创建文件及其父目录,如果这个文件存在,直接返回这个文件<br> 此方法不对File对象类型做判断,如果File不存在,无法判断其类型
|
cn.hutool.core.io.FileUtil.touch(java.lang.String, java.lang.String) |
创建文件及其父目录,如果这个文件存在,直接返回这个文件<br> 此方法不对File对象类型做判断,如果File不存在,无法判断其类型
|
cn.hutool.core.io.FileUtil.mkParentDirs(java.io.File) |
创建所给文件或目录的父目录
|
cn.hutool.core.io.FileUtil.mkParentDirs(java.lang.String) |
创建父文件夹,如果存在直接返回此文件夹
|
cn.hutool.core.io.FileUtil.del(java.lang.String) |
删除文件或者文件夹<br> 路径如果为相对路径,会转换为ClassPath路径! 注意:删除文件夹时不会判断文件夹是否为空,如果不空则递归删除子文件或文件夹<br> 某个文件删除失败会终止删除操作
|
cn.hutool.core.io.FileUtil.del(java.io.File) |
删除文件或者文件夹<br> 注意:删除文件夹时不会判断文件夹是否为空,如果不空则递归删除子文件或文件夹<br> 某个文件删除失败会终止删除操作
|
cn.hutool.core.io.FileUtil.clean(java.lang.String) |
清空文件夹<br> 注意:清空文件夹时不会判断文件夹是否为空,如果不空则递归删除子文件或文件夹<br> 某个文件删除失败会终止删除操作
|
cn.hutool.core.io.FileUtil.clean(java.io.File) |
清空文件夹<br> 注意:清空文件夹时不会判断文件夹是否为空,如果不空则递归删除子文件或文件夹<br> 某个文件删除失败会终止删除操作
|
cn.hutool.core.io.FileUtil.cleanEmpty(java.io.File) |
清理空文件夹<br> 此方法用于递归删除空的文件夹,不删除文件<br> 如果传入的文件夹本身就是空的,删除这个文件夹
|
cn.hutool.core.io.FileUtil.mkdir(java.lang.String) |
创建文件夹,如果存在直接返回此文件夹<br> 此方法不对File对象类型做判断,如果File不存在,无法判断其类型
|
cn.hutool.core.io.FileUtil.mkdir(java.io.File) |
创建文件夹,会递归自动创建其不存在的父文件夹,如果存在直接返回此文件夹<br> 此方法不对File对象类型做判断,如果File不存在,无法判断其类型
|
cn.hutool.core.io.FileUtil.createTempFile(java.io.File) |
创建临时文件<br> 创建后的文件名为 prefix[Randon].tmp
|
cn.hutool.core.io.FileUtil.createTempFile(java.io.File, boolean) |
创建临时文件<br> 创建后的文件名为 prefix[Randon].tmp
|
cn.hutool.core.io.FileUtil.createTempFile(java.lang.String, java.lang.String, java.io.File, boolean) |
创建临时文件<br> 创建后的文件名为 prefix[Randon].suffix From com.jodd.io.FileUtil
|
cn.hutool.core.io.FileUtil.copyFile(java.lang.String, java.lang.String, java.nio.file.StandardCopyOption[]) |
通过JDK7+的 Files#copy(Path, Path, CopyOption…) 方法拷贝文件
|
cn.hutool.core.io.FileUtil.copyFile(java.io.File, java.io.File, java.nio.file.StandardCopyOption[]) |
通过JDK7+的 Files#copy(Path, Path, CopyOption…) 方法拷贝文件
|
cn.hutool.core.io.FileUtil.copy(java.lang.String, java.lang.String, boolean) |
复制文件或目录<br> 如果目标文件为目录,则将源文件以相同文件名拷贝到目标目录
|
cn.hutool.core.io.FileUtil.copy(java.io.File, java.io.File, boolean) |
复制文件或目录<br> 情况如下:
1、src和dest都为目录,则将src目录及其目录下所有文件目录拷贝到dest下 2、src和dest都为文件,直接复制,名字为dest 3、src为文件,dest为目录,将src拷贝到dest目录下
|
cn.hutool.core.io.FileUtil.copyContent(java.io.File, java.io.File, boolean) |
复制文件或目录<br> 情况如下:
1、src和dest都为目录,则讲src下所有文件目录拷贝到dest下 2、src和dest都为文件,直接复制,名字为dest 3、src为文件,dest为目录,将src拷贝到dest目录下
|
cn.hutool.core.io.FileUtil.copyFilesFromDir(java.io.File, java.io.File, boolean) |
复制文件或目录<br> 情况如下:
1、src和dest都为目录,则讲src下所有文件(包括子目录)拷贝到dest下 2、src和dest都为文件,直接复制,名字为dest 3、src为文件,dest为目录,将src拷贝到dest目录下
|
cn.hutool.core.io.FileUtil.move(java.io.File, java.io.File, boolean) |
移动文件或者目录
|
cn.hutool.core.io.FileUtil.rename(java.io.File, java.lang.String, boolean) |
修改文件或目录的文件名,不变更路径,只是简单修改文件名,不保留扩展名。<br>
FileUtil.rename(file, “aaa.png”, true) xx/xx.png =》xx/aaa.png
|
cn.hutool.core.io.FileUtil.rename(java.io.File, java.lang.String, boolean, boolean) |
修改文件或目录的文件名,不变更路径,只是简单修改文件名<br> 重命名有两种模式:<br> 1、isRetainExt为true时,保留原扩展名:
FileUtil.rename(file, “aaa”, true) xx/xx.png =》xx/aaa.png
2、isRetainExt为false时,不保留原扩展名,需要在newName中
FileUtil.rename(file, “aaa.jpg”, false) xx/xx.png =》xx/aaa.jpg
|
cn.hutool.core.io.FileUtil.getCanonicalPath(java.io.File) |
获取规范的绝对路径
|
cn.hutool.core.io.FileUtil.getAbsolutePath(java.lang.String, java.lang.Class) |
获取绝对路径<br> 此方法不会判定给定路径是否有效(文件或目录存在)
|
cn.hutool.core.io.FileUtil.getAbsolutePath(java.lang.String) |
获取绝对路径,相对于ClassPath的目录<br> 如果给定就是绝对路径,则返回原路径,原路径把所有\\替换为/<br> 兼容Spring风格的路径表示,例如:classpath:config/example.setting也会被识别后转换
|
cn.hutool.core.io.FileUtil.getAbsolutePath(java.io.File) |
获取标准的绝对路径
|
cn.hutool.core.io.FileUtil.isAbsolutePath(java.lang.String) |
给定路径已经是绝对路径<br> 此方法并没有针对路径做标准化,建议先执行{@link #normalize(String)}方法标准化路径后判断
|
cn.hutool.core.io.FileUtil.isDirectory(java.lang.String) |
判断是否为目录,如果path为null,则返回false
|
cn.hutool.core.io.FileUtil.isDirectory(java.io.File) |
判断是否为目录,如果file为null,则返回false
|
cn.hutool.core.io.FileUtil.isFile(java.lang.String) |
判断是否为文件,如果path为null,则返回false
|
cn.hutool.core.io.FileUtil.isFile(java.io.File) |
判断是否为文件,如果file为null,则返回false
|
cn.hutool.core.io.FileUtil.equals(java.io.File, java.io.File) |
检查两个文件是否是同一个文件<br> 所谓文件相同,是指File对象是否指向同一个文件或文件夹
|
cn.hutool.core.io.FileUtil.contentEquals(java.io.File, java.io.File) |
比较两个文件内容是否相同<br> 首先比较长度,长度一致再比较内容<br> 此方法来自Apache Commons io
|
cn.hutool.core.io.FileUtil.contentEqualsIgnoreEOL(java.io.File, java.io.File, java.nio.charset.Charset) |
比较两个文件内容是否相同<br> 首先比较长度,长度一致再比较内容,比较内容采用按行读取,每行比较<br> 此方法来自Apache Commons io
|
cn.hutool.core.io.FileUtil.pathEquals(java.io.File, java.io.File) |
文件路径是否相同<br> 取两个文件的绝对路径比较,在Windows下忽略大小写,在Linux下不忽略。
|
cn.hutool.core.io.FileUtil.lastIndexOfSeparator(java.lang.String) |
获得最后一个文件路径分隔符的位置
|
cn.hutool.core.io.FileUtil.isModifed(java.io.File, long) |
判断文件是否被改动<br> 如果文件对象为 null 或者文件不存在,被视为改动
|
cn.hutool.core.io.FileUtil.normalize(java.lang.String) |
修复路径<br> 如果原路径尾部有分隔符,则保留为标准分隔符(/),否则不保留
- 1. 统一用 /
- 2. 多个 / 转换为一个 /
- 3. 去除两边空格
- 4. … 和 . 转换为绝对路径,当…多于已有路径时,直接返回根路径
栗子:
“/foo//” =》 “/foo/” “/foo/./” =》 “/foo/” “/foo/…/bar” =》 “/bar” “/foo/…/bar/” =》 “/bar/” “/foo/…/bar/…/baz” =》 “/baz” “/…/” =》 “/” “foo/bar/…” =》 “foo” “foo/…/bar” =》 “bar” “foo/…/…/bar” =》 “bar” “//server/foo/…/bar” =》 “/server/bar” “//server/…/bar” =》 “/bar” “C:\\foo\\…\\bar” =》 “C:/bar” “C:\\…\\bar” =》 “C:/bar” “~/foo/…/bar/” =》 “~/bar/” “~/…/bar” =》 “bar”
|
cn.hutool.core.io.FileUtil.subPath(java.lang.String, java.io.File) |
获得相对子路径
栗子:
dirPath: d:/aaa/bbb filePath: d:/aaa/bbb/ccc =》 ccc dirPath: d:/Aaa/bbb filePath: d:/aaa/bbb/ccc.txt =》 ccc.txt
|
cn.hutool.core.io.FileUtil.subPath(java.lang.String, java.lang.String) |
获得相对子路径,忽略大小写
栗子:
dirPath: d:/aaa/bbb filePath: d:/aaa/bbb/ccc =》 ccc dirPath: d:/Aaa/bbb filePath: d:/aaa/bbb/ccc.txt =》 ccc.txt dirPath: d:/Aaa/bbb filePath: d:/aaa/bbb/ =》 “”
|
cn.hutool.core.io.FileUtil.pathEndsWith(java.io.File, java.lang.String) |
判断文件路径是否有指定后缀,忽略大小写<br> 常用语判断扩展名
|
cn.hutool.core.io.FileUtil.getType(java.io.File) |
根据文件流的头部信息获得文件类型
1、无法识别类型默认按照扩展名识别 2、xls、doc、msi头信息无法区分,按照扩展名区分 3、zip可能为docx、xlsx、pptx、jar、war头信息无法区分,按照扩展名区分
|
cn.hutool.core.io.FileUtil.convertCharset(java.io.File, java.nio.charset.Charset, java.nio.charset.Charset) |
转换文件编码<br> 此方法用于转换文件编码,读取的文件实际编码必须与指定的srcCharset编码一致,否则导致乱码
|
cn.hutool.core.io.FileUtil.convertLineSeparator(java.io.File, java.nio.charset.Charset, cn.hutool.core.io.file.LineSeparator) |
转换换行符<br> 将给定文件的换行符转换为指定换行符
|
cn.hutool.core.io.FileUtil.cleanInvalid(java.lang.String) |
清除文件名中的在Windows下不支持的非法字符,包括: \\ / : * ? " < >
|
cn.hutool.core.io.FileUtil.containsInvalid(java.lang.String) |
文件名中是否包含在Windows下不支持的非法字符,包括: \\ / : * ? " < >
|
cn.hutool.core.io.FileUtil.checksumCRC32(java.io.File) |
计算文件CRC32校验码
|
cn.hutool.core.io.FileUtil.checksum(java.io.File, java.util.zip.Checksum) |
计算文件校验码
|
cn.hutool.core.io.FileUtil.getWebRoot() |
获取Web项目下的web root路径<br> 原理是首先获取ClassPath路径,由于在web项目中ClassPath位于 WEB-INF/classes/下,故向上获取两级目录即可。
|
cn.hutool.core.io.FileUtil.getParent(java.lang.String, int) |
获取指定层级的父路径
getParent(“d:/aaa/bbb/cc/ddd”, 0) -》 “d:/aaa/bbb/cc/ddd” getParent(“d:/aaa/bbb/cc/ddd”, 2) -》 “d:/aaa/bbb” getParent(“d:/aaa/bbb/cc/ddd”, 4) -》 “d:/” getParent(“d:/aaa/bbb/cc/ddd”, 5) -》 null
|
cn.hutool.core.io.FileUtil.getParent(java.io.File, int) |
获取指定层级的父路径
getParent(file(“d:/aaa/bbb/cc/ddd”, 0)) -》 “d:/aaa/bbb/cc/ddd” getParent(file(“d:/aaa/bbb/cc/ddd”, 2)) -》 “d:/aaa/bbb” getParent(file(“d:/aaa/bbb/cc/ddd”, 4)) -》 “d:/” getParent(file(“d:/aaa/bbb/cc/ddd”, 5)) -》 null
|
cn.hutool.core.io.FileUtil.checkSlip(java.io.File, java.io.File) |
检查父完整路径是否为自路径的前半部分,如果不是说明不是子路径,可能存在slip注入。
见http://blog.nsfocus.net/zip-slip-2/
|
cn.hutool.core.io.FileUtil.getMimeType(java.lang.String) |
根据文件扩展名获得MimeType
|
cn.hutool.core.io.FileUtil.isSymlink(java.io.File) |
判断是否为符号链接文件
|
cn.hutool.core.io.FileUtil.isSub(java.io.File, java.io.File) |
判断给定的目录是否为给定文件或文件夹的子目录
|
cn.hutool.core.io.FileUtil.createRandomAccessFile(java.nio.file.Path, cn.hutool.core.io.file.FileMode) |
创建{@link RandomAccessFile}
|
cn.hutool.core.io.FileUtil.createRandomAccessFile(java.io.File, cn.hutool.core.io.file.FileMode) |
创建{@link RandomAccessFile}
|
cn.hutool.core.io.FileUtil.tail(java.io.File, cn.hutool.core.io.LineHandler) |
文件内容跟随器,实现类似Linux下"tail -f"命令功能<br> 此方法会阻塞当前线程
|
cn.hutool.core.io.FileUtil.tail(java.io.File, java.nio.charset.Charset, cn.hutool.core.io.LineHandler) |
文件内容跟随器,实现类似Linux下"tail -f"命令功能<br> 此方法会阻塞当前线程
|
cn.hutool.core.io.FileUtil.tail(java.io.File, java.nio.charset.Charset) |
文件内容跟随器,实现类似Linux下"tail -f"命令功能<br> 此方法会阻塞当前线程
|
cn.hutool.core.io.FileUtil.getName(java.io.File) |
返回文件名
|
cn.hutool.core.io.FileUtil.getName(java.lang.String) |
返回文件名
|
cn.hutool.core.io.FileUtil.getSuffix(java.io.File) |
获取文件后缀名,扩展名不带“.”
|
cn.hutool.core.io.FileUtil.getSuffix(java.lang.String) |
获得文件后缀名,扩展名不带“.”
|
cn.hutool.core.io.FileUtil.getPrefix(java.io.File) |
返回主文件名
|
cn.hutool.core.io.FileUtil.getPrefix(java.lang.String) |
返回主文件名
|
cn.hutool.core.io.FileUtil.mainName(java.io.File) |
返回主文件名
|
cn.hutool.core.io.FileUtil.mainName(java.lang.String) |
返回主文件名
|
cn.hutool.core.io.FileUtil.extName(java.io.File) |
获取文件扩展名(后缀名),扩展名不带“.”
|
cn.hutool.core.io.FileUtil.extName(java.lang.String) |
获得文件的扩展名(后缀名),扩展名不带“.”
|