2023年12月1日发(作者:)
7hutool实战FileUtil⽂件⼯具类(100多个⽂件常⽤操作⽅法)
技术活,该赏
关注+⼀键三连(点赞,评论,收藏)再看,养成好习惯
⽤途:⽂件⼯具类(⽂件常⽤操作)
使⽤场景
提供100多个⽂件常⽤操作⽅法,包含并不局限于:判断⽂件或⽂件夹是否为空、判断file是否为⽂件或⽂件夹、递归⽂件夹⾥的所有⽂
件、获取指定⽂件夹的所有⽂件名、获取临时⽂件夹或临时⽂件的内容或者路径、计算⽂件夹或⽂件的总⼤⼩、创建⽂件或⽂件夹、创建临
时⽂件或临时⽂件夹、删除⽂件或⽂件夹、修改⽂件名或⽂件夹名、复制⽂件或⽂件夹、移动⽂件或⽂件夹、清空⽂件夹、获取规范的绝对
路径、⽐较两个⽂件、判断⽂件是否被改动、获取⽗路径或⼦路径、获取主⽂件名或后缀名等
项⽬引⽤
此博⽂的依据:hutool-5.6.5版本源码
获得指定⽬录下所有⽂件名
清空⽂件夹
2、isRetainExt为false时,不保留原扩展名,需要在newName中
(file, “”, false) xx/ =》xx/
获取规范的绝对路径
栗⼦:
dirPath: d:/aaa/bbb filePath: d:/aaa/bbb/ccc =》 ccc dirPath: d:/Aaa/bbb filePath: d:/aaa/bbb/ =》
获得相对⼦路径,忽略⼤⼩写
栗⼦:
dirPath: d:/aaa/bbb filePath: d:/aaa/bbb/ccc =》 ccc dirPath: d:/Aaa/bbb filePath: d:/aaa/bbb/ =》 dirPath:
d:/Aaa/bbb filePath: d:/aaa/bbb/ =》 “”
判断⽂件路径是否有指定后缀,忽略⼤⼩写
常⽤语判断扩展名
根据⽂件流的头部信息获得⽂件类型
1、⽆法识别类型默认按照扩展名识别 2、xls、doc、msi头信息⽆法区分,按照扩展名区分 3、zip可能为docx、xlsx、pptx、jar、war头信息⽆法区分,
按照扩展名区分
转换⽂件编码
此⽅法⽤于转换⽂件编码,读取的⽂件实际编码必须与指定的srcCharset编码⼀致,否则导致乱码
转换换⾏符
将给定⽂件的换⾏符转换为指定换⾏符
清除⽂件名中的在Windows下不⽀持的⾮法字符,包括: / : * " < >
⽂件名中是否包含在Windows下不⽀持的⾮法字符,包括: / : * " < >
计算⽂件CRC32校验码
计算⽂件校验码
获取Web项⽬下的web root路径
原理是⾸先获取ClassPath路径,由于在web项⽬中ClassPath位于 WEB-INF/classes/下,故向上获取两级⽬录即可。
获取指定层级的⽗路径
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
获取指定层级的⽗路径
⽂件内容跟随器,实现类似Linux下"tail -f"命令功能
此⽅法会阻塞当前线程
返回⽂件名
返回⽂件名
获取⽂件后缀名,扩展名不带“.”
获得⽂件后缀名,扩展名不带“.”
返回主⽂件名
源码解析:
链接:待补充
⽅法明细
⽅法名称:()
⽅法描述
列出⽬录⽂件
源码解析:
链接:待补充
⽅法明细
⽅法名称:y()
⽅法描述
⽂件是否为空
源码解析:
链接:待补充
⽅法明细
Equals(,mpty(new File("C:UsersAdministratorDesktopxuzhufileTest")));
Equals(,mpty(new File("C:")));
Equals(,mpty(new File("C:")));
源码解析:
链接:待补充
⽅法明细
⽅法名称:mpty()
String path
path 当前遍历⽂件或⽬录的路径
FileFilter fileFilter
fileFilter ⽂件过滤规则对象,选择要保留的⽂件,只对⽂件有效,不过滤⽬录
返回值:
⽂件列表
源码解析:
链接:待补充
file 当前遍历⽂件或⽬录
FileFilter fileFilter
fileFilter ⽂件过滤规则对象,选择要保留的⽂件,只对⽂件有效,不过滤⽬录
返回值:
⽂件列表
参考案例:
//递归遍历⽬录以及⼦⽬录中的所有⽂件 可以加过滤条件
List
//递归遍历⽬录并处理⽬录下的⽂件(⼦⽬录也会遍历),可以处理⽬录或⽂件
les(new File("C:UsersAdministratorDesktopxuzhu"), new Consumer
fileFilter ⽂件过滤规则对象,选择要保留的⽂件,只对⽂件有效,不过滤⽬录,null表⽰接收全部⽂件
返回值:
⽂件列表
参考案例:
//递归遍历⽬录以及⼦⽬录中的所有⽂件 可以加过滤条件
List
源码解析:
链接:待补充
path 当前遍历⽂件或⽬录的路径
返回值:
⽂件列表
参考案例:
返回值:
⽂件列表
参考案例:
//递归遍历⽬录以及⼦⽬录中的所有⽂件
List
for(File file:files){
源码解析:
链接:待补充
⽅法明细
⽅法名称:e()
⽅法描述
创建File对象,相当于调⽤new File(),不做任何处理
⽀持版本及以上
4.1.4
⽬录调⽤后
源码解析:
//懂的都懂
public static File newFile(String path) {
return new File(path);
}
⽅法明细
⽅法名称:()
⽅法描述
源码解析:
链接:待补充
⽅法明细
⽅法名称:(, )
⽅法描述
⽀持版本及以上
参数描述:
参数名
描述
源码解析:
链接:待补充
⽅法明细
⽅法名称:(, )
⽅法描述
⽀持版本及以上
参数描述:
参数名
描述
⽅法明细
⽅法名称:(, [])
⽅法描述
⽀持版本及以上
4.0.6
参数描述:
参数名
描述
File directory
源码解析:
链接:待补充
⽅法明细
⽅法名称:()
⽅法描述
创建File对象
描述
返回值:
临时⽂件路径
参考案例:
//获取临时⽂件路径(绝对路径)(当前电脑的临时⽂件路径)
n("临时⽂件路径:"+DirPath());
源码解析:
/**
* 获取临时⽂件路径(绝对路径)
*
* @return 临时⽂件路径
源码解析:
/**
* 获取临时⽂件⽬录
*
* @return 临时⽂件⽬录
* @since 4.0.6
*/
public static File getTmpDir() {
/**
* 获取⽤户路径(绝对路径)
*
* @return ⽤户路径
* @since 4.0.6
*/
public static String getUserHomePath() {
return perty("");
⽅法描述
判断⽂件是否存在,如果path为null,则返回false
⽀持版本及以上
参数描述:
参数名
描述
String path
path ⽂件路径
返回值:
如果存在返回true
参考案例:
String path ="C:UsersAdministratorDesktopxuzhu";
Equals(,(path));
//不存在的路径
Equals(,(path+"123"));
path = null;
Equals(,(path));
//相⽐于()优势,多了路径的判空处理
//下⾯会抛出空指针 NullPointerException
file ⽂件
返回值:
如果存在返回true
参考案例:
String path ="C:UsersAdministratorDesktopxuzhu";
File file = new File(path);
Equals(,(file));
//不存在的路径
file = new File(path+"123");
Equals(,(file));
file = null;
Equals(,(file));
源码解析:
源码解析:
链接:待补充
⽅法明细
在dified()的基础上,增加了file为null的判断
/**
* 指定⽂件最后修改时间
*
* @param file ⽂件
* @return 最后修改时间
*/
public static Date lastModifiedTime(File file) {
if (false == exist(file)) {
return null;
}
return new Date(dified());
参数名
描述
File file
file ⽬录或⽂件,null或者⽂件不存在返回0
返回值:
总⼤⼩,bytes长度
源码解析:
链接:待补充
返回值:
是否晚于给定时间
参考案例:
//⽂件或⽬录的最后修改时间是否晚于(⼤于)给定⽂件的最后修改时间
//给定⽂件不存在时,⽂件⼀定⽐⼀个不存在的⽂件新
File file1=new File("C:");
File file2=new File("C:");
n("file1最后修改时间"+(dified()).toString());
n("file2最后修改时间"+(dified()).toString());
Equals(,han(file1,file2));
//⽂件或⽬录的最后修改时间是否晚于(⼤于)给定⽂件的最后修改时间
//给定⽂件不存在时,⽂件⼀定⽐⼀个不存在的⽂件新
File file1=new File("C:");
File file2=new File("C:");
n("file1最后修改时间"+(dified()).toString());
n("file2最后修改时间"+(dified()).toString());
Equals(,han(file1,dified()));
源码解析:
链接:待补充
⽅法明细
⽅法名称:()
⽅法描述
创建⽂件及其⽗⽬录,如果这个⽂件存在,直接返回这个⽂件
此⽅法不对File对象类型做判断,如果File不存在,⽆法判断其类型
⽀持版本及以上
参数描述:
参数名
描述
String fullFilePath
源码解析:
链接:待补充
⽅法明细
⽅法名称:()
⽅法描述
创建⽂件及其⽗⽬录,如果这个⽂件存在,直接返回这个⽂件
此⽅法不对File对象类型做判断,如果File不存在,⽆法判断其类型
⽀持版本及以上
参数描述:
参数名
描述
File file
file ⽂件对象
返回值:
⽂件,若路径为null,返回null
参考案例:
// fullFilePath ⽂件的全路径,使⽤POSIX风格
创建⽂件及其⽗⽬录,如果这个⽂件存在,直接返回这个⽂件
此⽅法不对File对象类型做判断,如果File不存在,⽆法判断其类型
⽀持版本及以上
参数描述:
参数名
描述
File parent
parent ⽗⽂件对象
String path
path ⽂件路径
返回值:
File
参考案例:
String path
path ⽂件路径
返回值:
File
参考案例:
// fullFilePath ⽂件的全路径,使⽤POSIX风格
//⽆中⽣有 不存在
File file = ("C:UsersAdministratorDesktopxuzhu","");
Equals(,(file));
//⽆中⽣有 touchTest⽬录和 不存在
file = ("C:UsersAdministratorDesktopxuzhutouchTest","");
Equals(,(file));
String path = null;
//若路径为null,返回null
file = (path);
Equals(,(file));
源码解析:
链接:待补充
源码解析:
链接:待补充
⽅法明细
⽅法名称:ntDirs()
⽅法描述
创建⽗⽂件夹,如果存在直接返回此⽂件夹
⽀持版本及以上
参数描述:
参数名
删除⽂件或者⽂件夹
路径如果为相对路径,会转换为ClassPath路径! 注意:删除⽂件夹时不会判断⽂件夹是否为空,如果不空则递归删除⼦⽂件或⽂件夹
某个⽂件删除失败会终⽌删除操作
⽀持版本及以上
参数描述:
参数名
描述
String fullFileOrDirPath
⽅法名称:()
⽅法描述
删除⽂件或者⽂件夹
注意:删除⽂件夹时不会判断⽂件夹是否为空,如果不空则递归删除⼦⽂件或⽂件夹
某个⽂件删除失败会终⽌删除操作
⽀持版本及以上
参数描述:
参数名
描述
String dirPath
dirPath ⽂件夹路径
返回值:
成功与否
描述
File directory
directory ⽂件夹
返回值:
成功与否
参考案例:
//清空⼀个存在的⽂件夹,应返回true
参考案例2:
//清理空⽂件夹 传⼊的⽂件夹本⾝就是空的,删除这个⽂件夹
boolean result = mpty(new File("C:UsersAdministratorDesktopxuzhucleanEmptyTest1"));
True(result);
源码解析:
链接:待补充
⽅法名称:()
⽅法描述
创建⽂件夹,如果存在直接返回此⽂件夹
此⽅法不对File对象类型做判断,如果File不存在,⽆法判断其类型
⽀持版本及以上
参数描述:
源码解析:
链接:待补充
⽅法明细
⽅法名称:()
参数名
描述
File dir
dir 临时⽂件创建的所在⽬录
返回值:
临时⽂件
参考案例:
boolean isReCreat
isReCreat 是否重新创建⽂件(删掉原来的,创建新的)
返回值:
临时⽂件
参考案例:
String path = "C:UsersAdministratorDesktopxuzhucreateTempFileTest";
//创建临时⽂件 创建后的⽂件名为 hutool[Randon].tmp isReCreat 是否重新创建⽂件(删掉原来的,创建新的)
File tempFile = TempFile(new File(path),);
String path = "C:UsersAdministratorDesktopxuzhucreateTempFileTest";
String prefix="xuzhu";
String suffix=".nb";
//创建临时⽂件 创建后的⽂件名为 hutool[Randon].tmp isReCreat 是否重新创建⽂件(删掉原来的,创建新的)
File tempFile = TempFile(prefix,suffix,new File(path),);
n("Path:"+h());
n("file name:"+e());
Equals(,());
参考案例1:
//存在,不存在
String srcPath = "C:";
String destPath = "C:";
//返回⽬标dest的file 复制操作
//_ATTRIBUTES:完整复制源⽂件属性到新⽂件 注意:⽬标⽂件⼀定不能存在,不然会报错(FileAlreadyExistsException: ***)
File copyFile = le(srcPath,destPath, _ATTRIBUTES);
Equals(,());
复制前:
复制后:
复制完后,再执⾏代码
参考案例2:
//存在,,不存在
String srcPath = "C:";
String destPath = "C:";
String destPath3 = "C:";
//返回⽬标dest的file 复制操作
File copyFile = le(srcPath,destPath, _ATTRIBUTES);
le(srcPath,destPath3, _ATTRIBUTES);
Equals(,());
//如果⽬标路径已经存在(也就是⽂件),那么复制或者移动将失败。
// 如果想要覆盖已经存在的⽬标路径,可以使⽤REPLACE_EXISTING选项。如果想要复制所有⽂件的属性,可以使⽤COPY_ATTRIBUTES选项。也可以同时
使⽤两个选项
srcPath = "C:";
destPath = "C:";
copyFile = le(srcPath,destPath, E_EXISTING);
Equals(,());
srcPath = "C:";
destPath = "C:";
copyFile = le(srcPath,destPath, E_EXISTING,_ATTRIBUTES);
Equals(,());
复制前:
//存在,不存在
String srcPath = "C:";
String destPath = "C:";
//返回⽬标dest的file 复制操作
//_MOVE:将⽂件作为原⼦⽂件系统操作移动 会报错:(UnsupportedOperationException: Unsupported copy option)因为co
py⽅法不能⽤这个参数
//说到这个顺便说明下,copy⽀持的属性有:(详见:)
// E_EXISTING
// OW_LINKS
// _ATTRIBUTES
// UPTIBLE
File copyFile = le(srcPath,destPath, _MOVE);
Equals(,());
源码解析:
链接:待补充
⽅法明细
⽅法名称:le(, ,
rdCopyOption[])
⽅法描述
通过JDK7+的 Files#copy(Path, Path, CopyOption…) ⽅法拷贝⽂件
⽀持版本及以上
参数描述:
参数名
⽬标⽂件
参考案例:
//存在,不存在
String srcPath = "C:";
String destPath = "C:";
//返回⽬标dest的file 复制操作
//_ATTRIBUTES:完整复制源⽂件属性到新⽂件 注意:⽬标⽂件⼀定不能存在,不然会报错(FileAlreadyExistsException: ***)
File copyFile = le(new File(srcPath),new File(destPath), _ATTRIBUTES);
Equals(,());
源码解析:
链接:待补充
⽅法明细
⽅法名称:(, , boolean)
⽅法描述
复制⽂件或⽬录
如果⽬标⽂件为⽬录,则将源⽂件以相同⽂件名拷贝到⽬标⽬录
String srcPath = "";
String destPath = "";
File destFile = (srcPath, destPath, true);
源码解析:
链接:待补充
⽅法明细
⽅法名称:ntent(, , boolean)
⽅法描述
复制⽂件或⽬录
情况如下:
1、src和dest都为⽬录,则讲src下所有⽂件⽬录拷贝到dest下
2、src和dest都为⽂件,直接复制,名字为dest
3、src为⽂件,dest为⽬录,将src拷贝到dest⽬录下
⽀持版本及以上
参数描述:
参数名
描述
File src
参考案例2:
//2、src和dest都为⽂件,直接复制,名字为dest
String srcPath = "C:";
String destPath = "C:";
//返回对象file是⽬标⽬录或⽂件
ntent(new File(srcPath),new File(destPath),true);
参考案例3:
//3、src为⽂件,dest为⽬录,将src拷贝到dest⽬录下
String srcPath = "C:";
//dest为⽬录且要存在,不然复制不会成功
String destPath = "C:UsersAdministratorDesktopxuzhucopyContentTest3";
//返回对象file是⽬标⽬录或⽂件
ntent(new File(srcPath),new File(destPath),true);
参考案例4:
//1、src和dest都为⽬录,则讲src下所有⽂件⽬录拷贝到dest下(包含⼦⽬录,⼦⽬录会拷贝,⼦⽬录包含的⽂件也会拷贝)
String srcPath = "C:UsersAdministratorDesktopxuzhucopyContentTest4";
String destPath = "C:UsersAdministratorDesktopxuzhucopyContentTest4_dest";
//返回对象file是⽬标⽬录或⽂件
ntent(new File(srcPath),new File(destPath),true);
复制前:
复制后:
源码解析:
链接:待补充
⽬标⽬录或⽂件
参考案例:
//1、src和dest都为⽬录,则讲src下所有⽂件(包括⼦⽬录)拷贝到dest下
String srcPath = "C:UsersAdministratorDesktopxuzhucopyFilesFromDirTest1";
String destPath = "C:UsersAdministratorDesktopxuzhucopyFilesFromDirTest1_dest";
//返回对象file是⽬标⽬录或⽂件
ntent(new File(srcPath),new File(destPath),true);
参考案例2:
//1、src和dest都为⽬录,则讲src下所有⽂件(包括⼦⽬录)拷贝到dest下
String srcPath = "C:UsersAdministratorDesktopxuzhucopyFilesFromDirTest2";
String destPath = "C:UsersAdministratorDesktopxuzhucopyFilesFromDirTest2_dest";
//返回对象file是⽬标⽬录或⽂件
ntent(new File(srcPath),new File(destPath),true);
复制前:
复制后:
源码解析:
链接:待补充
⽅法明细
⽅法名称:(, , boolean)
⽅法描述
移动后:
参考案例2:
//2、A⽬录的源⽂件移到B⽬录下
File srcFile = ("C:");
//⽬标⽬录/dest为⽬录且要存在,不然移动不会成功,会变成⽂件
File destFile = ("C:UsersAdministratorDesktopxuzhutargetMoveTest2");
(srcFile, destFile, true);
移动前:
移动后:
参考案例3:
//3、A⽬录的源⽂件移到B⽬录的⽬标⽂件
File srcFile = ("C:");
//⽬标⽬录不存在程序也会帮忙创建
File destFile = ("C:");
(srcFile, destFile, true);
移动前:
移动后:
源码解析:
参数名
描述
File file
修改⽂件或⽬录的⽂件名,不变更路径,只是简单修改⽂件名
重命名有两种模式:
1、isRetainExt为true时,保留原扩展名:
(file, “aaa”, true) xx/ =》xx/
2、isRetainExt为false时,不保留原扩展名,需要在newName中
(file, “”, false) xx/ =》xx/
源码解析:
链接:待补充
⽅法明细
⽅法名称:onicalPath()
⽅法描述
获取规范的绝对路径
⽀持版本及以上
4.1.4
参数描述:
参数名
描述
源码解析:
链接:待补充
⽅法明细
⽅法名称:olutePath(, )
⽅法描述
获取绝对路径
此⽅法不会判定给定路径是否有效(⽂件或⽬录存在)
⽀持版本及以上
源码解析:
链接:待补充
⽅法明细
⽅法名称:olutePath()
⽅法描述
获取绝对路径,相对于ClassPath的⽬录
如果给定就是绝对路径,则返回原路径,原路径把所有替换为/
兼容Spring风格的路径表⽰,例如:classpath:config/g也会被识别后转换
⽀持版本及以上
参数描述:
参数名
"中⽂.xml"这个⽂件是不存在的,但是路径还是可以取到“相对于ClassPath的”
源码解析:
链接:待补充
参考案例:
//获取标准的绝对路径 跟getAbsolutePath(String)不⼀样
String absolutePath = olutePath(new File(""));
NotNull(absolutePath);
n("absolutePath:"+absolutePath);
String absolutePath2 = olutePath(new File(absolutePath));
NotNull(absolutePath2);
n("absolutePath2:"+absolutePath2);
Equals(absolutePath, absolutePath2);
String path = olutePath(new File("中⽂.xml"));
True(ns("中⽂.xml"));
n("path:"+path);
path = olutePath(new File("d:"));
n("path:"+path);
源码解析:
if (file == null) {
return null;
}
try {
String path
path 需要检查的Path
返回值:
是否已经是绝对路径
判断是否为⽬录,如果file为null,则返回false
⽀持版本及以上
参数描述:
参数名
源码解析:
链接:待补充
⽅法明细
⽅法名称:()
file2 ⽂件2
返回值:
是否相同
参考案例:
// 源⽂件和⽬标⽂件都不存在
返回值:
两个⽂件内容⼀致返回true,否则false
参考案例:
// ⽐较两个⽂件内容是否相同,不能⽐较两个⽂件夹,⽅法⾥有做判断是否是⽂件夹,是的话报错提⽰
// 源⽂件存在,⽬标⽂件不存在
File srcFile1 = ("");
参考案例:
// ⽐较两个⽂件内容是否相同,不能⽐较两个⽂件夹,⽅法⾥有做判断是否是⽂件夹,是的话报错提⽰
// 源⽂件存在,⽬标⽂件不存在
File srcFile1 = ("");
File destFile1 = ("d:/");
Equals(,tEqualsIgnoreEOL(srcFile1, destFile1, T_UTF_8));
// 源⽂件存在,⽬标⽂件存在
File srcFile2 = ("");
File destFile2 = ("");
Equals(,tEqualsIgnoreEOL(srcFile2, destFile2,T_UTF_8));
// 源⽂件存在,⽬标⽂件存在
⽅法明细
⽅法名称:dexOfSeparator()
⽅法描述
是否被改动
参考案例:
File srcFile = ("C:");
//判断⽂件是否被改动
Equals(,fed(srcFile,dified()));
Equals(,fed(srcFile,().getTime()));
修复后的路径
参考案例:
Equals("/foo/", ize("/foo//"));
String subPath = h("d:/aaa/bbb/", new File("d:/aaa/bbb/ccc/"));
Equals("ccc", subPath);
subPath = h("d:/aaa/bbb", new File("d:/aaa/bbb/ccc/"));
String subPath = h("d:/aaa/bbb/", "d:/aaa/bbb/ccc/");
Equals("ccc/", subPath);
subPath = h("d:/aaa/bbb", "d:/aaa/bbb/ccc/");
⽅法明细
⽅法名称:e()
⽅法描述
根据⽂件流的头部信息获得⽂件类型
1、⽆法识别类型默认按照扩展名识别
2、xls、doc、msi头信息⽆法区分,按照扩展名区分
3、zip可能为docx、xlsx、pptx、jar、war头信息⽆法区分,按照扩展名区分
⽀持版本及以上
参数描述:
参数名
描述
File file
file ⽂件 {@link File}
返回值:
类型,⽂件的扩展名,未找到为{@code null}
参考案例:
//根据⽂件流的头部信息获得⽂件类型
File file = ("");
String type = e(file);
Equals("jpg", type);
File file
file ⽂件
Charset srcCharset
srcCharset 原⽂件的编码,必须与⽂件内容的编码保持⼀致
Charset destCharset
destCharset 转码后的编码
返回值:
被转换编码的⽂件
参考案例:
File srcFile = ("C:");
转换换⾏符
将给定⽂件的换⾏符转换为指定换⾏符
⽀持版本及以上
3.1.0
参数描述:
参数名
描述
File file
file ⽂件
清除⽂件名中的在Windows下不⽀持的⾮法字符,包括: / : * " < > |
⽀持版本及以上
3.3.1
参数描述:
参数名
描述
String fileName
String fileName = "cleanInvalidTest / : * ? " < > |.txt";
//⽂件名中是否包含在Windows下不⽀持的⾮法字符,包括: / : * ? " < > |
Equals(, nsInvalid(fileName));
fileName = "";
Equals(, nsInvalid(fileName));
源码解析:
链接:待补充
file ⽂件,不能为⽬录
Checksum checksum
checksum {@link Checksum}
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
⽀持版本及以上
4.1.2
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
⽀持版本及以上
4.1.2
参数名
描述
File parentFile
parentFile ⽗⽂件或⽬录
File file
file ⼦⽂件或⽬录
返回值:
⼦⽂件或⽬录
参考案例1:
//检查⽗完整路径是否为⾃路径的前半部分,如果不是说明不是⼦路径,可能存在slip注⼊,此⽅法会检查slip漏洞,漏洞说明见/zip-slip-
2/
描述
String filePath
filePath ⽂件路径或⽂件名
返回值:
⽅法名称:(, )
⽅法描述
判断给定的⽬录是否为给定⽂件或⽂件夹的⼦⽬录
返回值:
{@link RandomAccessFile}
参考案例:
Path path = ("C:");
RandomAccessFile randomAccessFile = RandomAccessFile(path, FileMode.r);
⽂件内容跟随器,实现类似Linux下"tail -f"命令功能
此⽅法会阻塞当前线程
⽀持版本及以上
参数描述:
参数名
描述
File file
file ⽂件
LineHandler handler
handler ⾏处理器
返回值:
参考案例:
public class IoUtilLineHandler implements LineHandler {
源码解析:
链接:待补充
⽅法明细
源码解析:
链接:待补充
⽅法明细
⽅法名称:(, t)
⽂件名
参考案例:
String path = "d:aaabbbccddd";
5.3.8
参数描述:
参数名
描述
File file
⽅法名称:fix()
⽅法描述
返回主⽂件名
⽀持版本及以上
String path = "d:";
//返回主⽂件名
String suffix = fix(path);
Equals("ddd", suffix);
描述
String fileName
fileName 完整⽂件名
返回值:
主⽂件名
参考案例:
String path = "d:aaabbbccddd";
String path = "d:aaabbbccddd";
String mainName = e(new File(path));
Equals("", mainName);
path = "d:aaabbbccddd";
mainName = e(new File(path));
Equals("", mainName);
path = "d:";
获取当前系统的换⾏分隔符
Windows:
Mac:
Linux:
⽀持版本及以上
4.0.5


发布评论