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、⽆法识别类型默认按照扩展名识别 2xlsdocmsi头信息⽆法区分,按照扩展名区分 3zip可能为docxxlsxpptxjarwar头信息⽆法区分,

按照扩展名区分

转换⽂件编码

此⽅法⽤于转换⽂件编码,读取的⽂件实际编码必须与指定的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 files = new ArrayList<>();

//递归遍历⽬录并处理⽬录下的⽂件(⼦⽬录也会遍历),可以处理⽬录或⽂件

les(new File("C:UsersAdministratorDesktopxuzhu"), new Consumer() {

fileFilter ⽂件过滤规则对象,选择要保留的⽂件,只对⽂件有效,不过滤⽬录,null表⽰接收全部⽂件

返回值:

⽂件列表

参考案例:

//递归遍历⽬录以及⼦⽬录中的所有⽂件 可以加过滤条件

List files = les(new File("C:UsersAdministratorDesktopxuzhu"),3, new FileFilter() {

源码解析:

链接:待补充

path 当前遍历⽂件或⽬录的路径

返回值:

⽂件列表

参考案例:

返回值:

⽂件列表

参考案例:

//递归遍历⽬录以及⼦⽬录中的所有⽂件

List files = les(new File("C:UsersAdministratorDesktopxuzhu"));

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()的基础上,增加了filenull的判断

/**

* 指定⽂件最后修改时间

*

* @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:";

//返回⽬标destfile 复制操作

//_ATTRIBUTES:完整复制源⽂件属性到新⽂件 注意:⽬标⽂件⼀定不能存在,不然会报错(FileAlreadyExistsException: ***

File copyFile = le(srcPath,destPath, _ATTRIBUTES);

Equals(,());

复制前:

复制后:

复制完后,再执⾏代码

参考案例2

//存在,不存在

String srcPath = "C:";

String destPath = "C:";

String destPath3 = "C:";

//返回⽬标destfile 复制操作

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:";

//返回⽬标destfile 复制操作

//_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:";

//返回⽬标destfile 复制操作

//_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

//2srcdest都为⽂件,直接复制,名字为dest

String srcPath = "C:";

String destPath = "C:";

//返回对象file是⽬标⽬录或⽂件

ntent(new File(srcPath),new File(destPath),true);

参考案例3

//3src为⽂件,dest为⽬录,将src拷贝到dest⽬录下

String srcPath = "C:";

//dest为⽬录且要存在,不然复制不会成功

String destPath = "C:UsersAdministratorDesktopxuzhucopyContentTest3";

//返回对象file是⽬标⽬录或⽂件

ntent(new File(srcPath),new File(destPath),true);

参考案例4

//1srcdest都为⽬录,则讲src下所有⽂件⽬录拷贝到dest下(包含⼦⽬录,⼦⽬录会拷贝,⼦⽬录包含的⽂件也会拷贝)

String srcPath = "C:UsersAdministratorDesktopxuzhucopyContentTest4";

String destPath = "C:UsersAdministratorDesktopxuzhucopyContentTest4_dest";

//返回对象file是⽬标⽬录或⽂件

ntent(new File(srcPath),new File(destPath),true);

复制前:

复制后:

源码解析:

链接:待补充

⽬标⽬录或⽂件

参考案例:

//1srcdest都为⽬录,则讲src下所有⽂件(包括⼦⽬录)拷贝到dest

String srcPath = "C:UsersAdministratorDesktopxuzhucopyFilesFromDirTest1";

String destPath = "C:UsersAdministratorDesktopxuzhucopyFilesFromDirTest1_dest";

//返回对象file是⽬标⽬录或⽂件

ntent(new File(srcPath),new File(destPath),true);

参考案例2

//1srcdest都为⽬录,则讲src下所有⽂件(包括⼦⽬录)拷贝到dest

String srcPath = "C:UsersAdministratorDesktopxuzhucopyFilesFromDirTest2";

String destPath = "C:UsersAdministratorDesktopxuzhucopyFilesFromDirTest2_dest";

//返回对象file是⽬标⽬录或⽂件

ntent(new File(srcPath),new File(destPath),true);

复制前:

复制后:

源码解析:

链接:待补充

⽅法明细

⽅法名称:(, , boolean)

⽅法描述

移动后:

参考案例2

//2A⽬录的源⽂件移到B⽬录下

File srcFile = ("C:");

//⽬标⽬录/dest为⽬录且要存在,不然移动不会成功,会变成⽂件

File destFile = ("C:UsersAdministratorDesktopxuzhutargetMoveTest2");

(srcFile, destFile, true);

移动前:

移动后:

参考案例3

//3A⽬录的源⽂件移到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的”

源码解析:

链接:待补充

参考案例:

//获取标准的绝对路径 getAbsolutePathString)不⼀样

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、⽆法识别类型默认按照扩展名识别

2xlsdocmsi头信息⽆法区分,按照扩展名区分

3zip可能为docxxlsxpptxjarwar头信息⽆法区分,按照扩展名区分

⽀持版本及以上

参数描述:

参数名

描述

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