java.lang.Object
com.jmc.io.Files
文件操作
时间: 2019.1.12
更新:
2019.1.25 1. 增加“源文件是否为文件夹的判断” 2. 优化提示信息 2019.1.27 1. 优化删除文件(删除一个有2100长文件夹只需38秒) 2. 添加多线程 2019.1.28 添加随机存储 2019.1.29 添加大文件通道(删除原有随机存储) 2019.1.31 根据设备彻底优化,从最大程度避免出错 2019.2.2 1. 加入zip压缩和解压 2. 加入文件的移动和重命名 2019.2.3 1. 加入基础提示布尔值 2. 加入状态信息 2019.2.17 加入输出和读取功能 2019.2.27 读取改用FIS(BR末尾换行,故不采用) 2019.2.28 输出功能加入追加模式 2019.3.15 加入是否检查的布尔值 2019.3.19 设置不抛出所有异常 2019.3.23 复制功能加入追加模式 2019.4.15 做到精准计算操作用时 2019.5.3 通道均改为静态内部类方式 2019.6.23 优化提示信息 2019.7.3 加入输出字节码功能 2019.8.22 1. 改输入字节码功能为readToBytes 2. 将readToBytes,outBytes作为输入输出主方法 2019.8.23 1. 优化文件压缩和解压,及时关闭文件流和清除缓冲区 2. 删除out方法中检查文件完整性判断 2019.8.24 1. 添加文件搜索功能 2. 优化文件信息统计 3. 删除结果保存功能 4. 删除多余成员变量 5. 删除是否复制到sd卡判断 6. 优化线程结束判断 2019.8.25 1. 高级搜索功能添加过滤器 2. 调整流关闭顺序(先打开的后关闭,只需关闭Channel无需关闭文件流) 2019.8.31 1. 加入线程池 2. 修改临时数组大小: 1024(1k) -> 8192(8k) 性能提升明显 2019.9.13 1. 加入文件编码修改功能 2. 输入输出方法加入字符集参数 2019.10.5 加入单文件搜索(findAny)方法 2020.3.4 用非递归方式统计文件夹和搜索单文件,其中搜索单文件的速度明显加快 2020.3.10 添加批量重命名方法 2020.3.11 1. 修复文件信息方法中的统计错误(将初始文件夹的大小:4KB也统计进去了) 2. 添加文件长度转换方法 2020.3.12 加入树状图统计文件夹功能 2020.3.31 1. 加入批量移动和批量删除功能 2. 将批量方法集中并改名为寻找XX 3. 添加寻找复制方法 4. 添加findDO模板以统一化代码,并扩展findXX为orContains形式 2020.4.1 1. 升级findToMap方法,可以输入多个搜索条件 2. 添加deletes方法 2020.4.8 1. 添加outStream方法 2. 将所有out系列方法(outBytes, outStream)统一命名为out 3. 压缩方法添加“储存模式”可选项 4. 优化输出,使统计结果更加美观 2020.4.9 将Streams类的流与文件方法移动到本类 2020.4.17 添加按时间重命名方法 2020.4.20 完善移动方法,使其能兼容不同分区的移动 2020.8.7 1. 添加findFiles和findDirs方法 2. 将findToMap方法改名为findAll 3. 删除findAll第一个参数为File的重载方法 2020.8.18 1. 将所有返回布尔值的方法改为返回void且出错时直接抛出运行时异常 2. 添加deletes参数为文件列表的重载方法 2020.12.27 对源码进行大幅度调整优化,并添加相应方法注释 2021.3.15 更新大文件复制通道代码,用NIO: ByteBuffer提高性能 2021.7.8 使用logger代替basicDetails,showOperatingDetails 2021.7.9 1. 删除部分out方法 2. 减少成员变量 3. findAll搜索结果改为类储存,提高辨识度 4. read方法用Charset类代替charsetName字符串参数,提高可读性 5. out方法默认采用非追加方式,方便调用 2021.7.10 1. 更改方法次序,使其更合理 2. 添加mkdirs方法,规范创建多级目录 3. 用运行时异常代替所有的sout 2021.7.22 优化文件树,使其返回实体对象并且自动按文件/文件夹自动降序排列 2021.8.17 优化Logger打印,在其关闭情况下减少资源损耗(降低了20%耗时) 2021.8.18 懒惰初始化Logger,减少能源损耗(降低3%耗时) 2021.8.21 1. 内联ZipOutputThread和多个loop系列方法(copyLoop等),降低耦合度 2. 删除两个CopyThread,改为普通方法 3. 改进拷贝时目标文件路径推算算法,增强源码可读性 2021.8.23 1. 修改Logger名称为类全限定名 2. 删除enableLog成员变量(boolean) 2021.8.28 添加代码折叠,使总体结构更清晰 2021.11.24 添加exists, createFile和delete(String...)方法 2021.11.25 添加lines方法 2022.3.5 当文件树展开文件夹失败时,改为打印错误日志而不是直接抛出异常 2022.12.29 1. 添加getEncoding系列方法来查询文件编码 2. 添加setEncoding(file, newEncoding)方法来简化设置文件编码的调用 2022.2.12 1. 添加list方法来列出一级目录的文件/文件夹 2. 添加默认参数,更改重载方法次序! 2022.2.18 使用默认参数特性(@DefaultArg)重写具有默认参数的方法! 2023.2.22 1. 将所有方法添加@apiNote以标注api示例代码 2. 删除findDO系列方法(findMoves,findDels等) 3. 添加必要的注释提高代码可读性 2023.3.6 添加getAbsolutePath方法来从相对路径获取绝对路径 2023.3.23 添加createTempFile和createTempDir方法来新建临时文件和文件夹 2023.4.3 添加getParentPath方法来获取路径的父路径 2023.7.12 1. 添加isFile和isDir方法 2. 删除findInfo方法 3. 添加getLength和getFileInfo方法 4. 添加getReadableLength方法
- 从以下版本开始:
- 1.0
-
嵌套类概要
嵌套类修饰符和类型类说明static final record
文件详细信息类static class
文件树static final record
搜索结果类 -
方法概要
修饰符和类型方法说明static void
复制文件或文件夹static void
复制文件或文件夹static void
createFile
(File f) 创建新文件static void
createFile
(String path) 创建新文件static String
创建临时文件夹(名称是时间戳)static String
createTempDir
(String dirName) 创建临时文件夹static String
创建临时文件(名称是时间戳)static String
createTempFile
(String fileName) 创建临时文件static void
删除文件或文件夹static void
删除多个文件或文件夹static void
删除文件或文件夹static void
删除多个文件或文件夹static void
删除多个文件或文件夹static void
enableLog
(boolean enable) 设置是否打印日志static boolean
判断路径是否存在static boolean
判断文件/文件夹是否存在static Files.FindResult
findAll
(String dirPath, FileFilter filter) 搜索路径下符合要求的所有文件和文件夹static Files.FindResult
搜索路径下符合要求的所有文件和文件夹static File
搜索单个文件static File
搜索单个文件findDirs
(String dirPath, FileFilter filter) 搜索路径下符合要求的所有文件夹搜索路径下符合要求的所有文件夹findFiles
(String dirPath, FileFilter filter) 搜索路径下符合要求的所有文件搜索路径下符合要求的所有文件static String
getAbsolutePath
(String relativePath) 从相对路径获取绝对路径getEncoding
(File f) 获取文件的编码字符集getEncoding
(String path) 获取文件的编码字符集static Files.FileInfo
getFileInfo
(File src) 文件信息static Files.FileInfo
getFileInfo
(String path) 文件信息static long
获取文件/文件夹的字节长度static long
获取文件/文件夹的字节长度static String
getParentPath
(String path) 获取指定路径的父路径static String
getReadableLength
(File src) 获取文件/文件夹的人类可读长度static String
getReadableLength
(String path) 获取文件/文件夹的人类可读长度static boolean
判断路径是否是文件夹static boolean
判断路径是否是文件夹static boolean
判断路径是否是文件static boolean
判断路径是否是文件使用UTF-8编码读取文件中的所有行到字符串流读取文件中的所有行到字符串流使用UTF-8编码读取文件中的所有行到字符串流读取文件中的所有行到字符串流列出一个目录的一级文件/文件夹列出一个目录的一级文件/文件夹static void
创建多级目录static void
创建多级目录static void
移动文件或文件夹static void
移动文件或文件夹static Files.FileTree
normalTree
(File dir) 普通树状图(搜索深度5层,结果中文件/文件夹最小大小为50MB)static Files.FileTree
normalTree
(String path) 普通树状图(搜索深度5层,结果中文件/文件夹最小大小为50MB)static void
用非追加模式把byte数组输出到文件static void
把byte数组输出到文件static void
用非追加模式把byte数组输出到文件static void
把byte数组输出到文件static void
out
(InputStream in, File des, boolean appendMode) 输入流输出到文件static void
out
(InputStream in, String path, boolean appendMode) 输入流输出到文件static void
使用非追加模式和UTF-8编码输出字符串到文件static void
使用UTF-8编码输出字符串到文件static void
输出字符串到文件static void
使用非追加模式和UTF-8编码输出字符串到文件static void
使用UTF-8编码输出字符串到文件static void
输出字符串到文件static String
使用UTF-8编码读取文件到字符串static String
读取文件到字符串static String
使用UTF-8编码读取文件到字符串static String
读取文件到字符串static byte[]
readToBytes
(File src) 读取文件到byte数组static byte[]
readToBytes
(String path) 读取文件到byte数组static void
重命名文件或文件夹static void
重命名文件或文件夹static void
renameByTime
(File dir, String suffix) 按时间重命名static void
renameByTime
(String dirPath, String suffix) 按时间重命名(升序)static void
setEncoding
(File src, Charset newCharset) 设置文件编码(自动识别原编码)static void
setEncoding
(File src, Charset oldCharset, Charset newCharset) 设置文件编码static void
setEncoding
(String path, Charset newCharset) 设置文件编码(自动识别原编码)static void
setEncoding
(String path, Charset oldCharset, Charset newCharset) 设置文件编码static Files.FileTree
singleTree
(File dir) 单层树状图(结果中文件/文件夹最小大小为50MB)static Files.FileTree
singleTree
(String path) 单层树状图(结果中文件/文件夹最小大小为50MB)static Files.FileTree
树状图统计文件夹static Files.FileTree
树状图统计文件夹static void
在本目录下解压文件static void
解压文件static void
在本目录下解压文件static void
解压文件static Files.FileTree
完整树状图(层数、文件/文件夹大小无限制)static Files.FileTree
完整树状图(层数、文件/文件夹大小无限制)static void
在本目录下创建压缩文件(非储存模式)static void
在本目录下创建压缩文件static void
压缩文件或文件夹static void
在本目录下创建压缩文件(非储存模式)static void
在本目录下创建压缩文件static void
压缩文件或文件夹
-
方法详细资料
-
enableLog
public static void enableLog(boolean enable) 设置是否打印日志- 参数:
enable
- 是否打印日志- API Note:
// 开启操作日志打印(复制,删除文件等情况下打印日志) Files.enableLog(true);
-
copy
复制文件或文件夹- 参数:
srcPath
- 源路径desPath
- 目标路径- API Note:
// 将a.txt复制到dir文件夹 Files.copy("./a.txt", "/path/to/dir"); // 将a文件夹复制到/path/to/dir/a Files.copy("/path/to/a", "/path/to/dir");
-
copy
复制文件或文件夹- 参数:
src
- 源文件destPath
- 目标路径- 另请参阅:
-
move
移动文件或文件夹- 参数:
srcPath
- 源路径desPath
- 目标路径- API Note:
// 将a.txt移动到test文件夹 Files.move("./a.txt", "path/to/test"); // 将a文件夹移动到/path/to/test/a Files.move("/path/to/a", "/path/to/test");
-
move
移动文件或文件夹- 参数:
src
- 文件或文件夹的File对象desPath
- 目标路径- 另请参阅:
-
rename
重命名文件或文件夹- 参数:
filePath
- 路径newName
- 新名称- API Note:
// 将a.txt重命名为b.jpg Files.rename("/path/to/a.txt", "b.jpg"); // 将a文件夹命名为b Files.rename("/path/to/a", "b");
-
rename
重命名文件或文件夹- 参数:
src
- 源文件newName
- 新名称- 另请参阅:
-
delete
删除文件或文件夹- 参数:
path
- 路径- API Note:
// 删除a.txt Files.delete("./a.txt"); // 删除a文件夹 Files.delete("/path/to/a");
-
delete
删除文件或文件夹- 参数:
src
- 源文件的File对象- 另请参阅:
-
delete
删除多个文件或文件夹- 参数:
paths
- 多个路径- 从以下版本开始:
- 1.8
- API Note:
// 删除a.txt, b文件夹 Files.delete("./a.txt", "/path/to/b");
-
delete
删除多个文件或文件夹- 参数:
fs
- 文件或文件夹- 另请参阅:
-
delete
删除多个文件或文件夹- 参数:
list
- 文件列表- API Note:
// 文件,文件夹列表(包含a.txt和b文件夹) var list = List.of(new File("./a.txt"), new File("/path/to/b")); // 删除列表中的文件/文件夹 Files.delete(list);
-
zip
压缩文件或文件夹- 参数:
srcPath
- 源路径zipPath
- zip路径(可为空,默认是源路径)storeMode
- 是否启用储存模式- API Note:
// 将a文件夹压缩为zip文件,生成在当前路径(/path/to/a.zip),不打开储存模式 Files.zip("/path/to/a", null, null); // 将a.txt压缩为zip文件,生成在当前路径(/path/to/a.txt.zip),不打开储存模式 Files.zip("./a.txt", null, null); // 将a文件夹压缩为zip文件,生成在/path/to/b/a.zip,不打开储存模式 Files.zip("/path/to/a", "/path/to/b", null); // 将a文件夹压缩为zip文件,生成在/path/to/b/a.zip,打开储存模式(只固定,实际不压缩) Files.zip("/path/to/a", "/path/to/b", true);
-
zip
在本目录下创建压缩文件- 参数:
srcPath
- 源路径storeMode
- 是否启用储存模式- API Note:
// 压缩a.txt,生成在/path/to/a.txt.zip,不启用储存模式 Files.zip("/path/to/a.txt", false); // 压缩a文件夹,生成在/path/to/a.zip,启用储存模式(只固定,实际不压缩) Files.zip("/path/to/a", true);
-
zip
在本目录下创建压缩文件(非储存模式)- 参数:
srcPath
- 源路径- API Note:
// 压缩a.txt,生成在/path/to/a.txt.zip,不启用储存模式 Files.zip("/path/to/a.txt.zip"); // 压缩a文件夹,生成在/path/to/a.zip,不启用储存模式 Files.zip("/path/to/a");
-
zip
压缩文件或文件夹- 参数:
src
- 源文件zipPath
- zip路径(可为空,默认是源路径)storeMode
- 是否启用储存模式(可为空,默认是否)- 另请参阅:
-
zip
在本目录下创建压缩文件- 参数:
src
- 源文件storeMode
- 是否启用储存模式- 另请参阅:
-
zip
在本目录下创建压缩文件(非储存模式)- 参数:
src
- 源文件- 另请参阅:
-
unzip
解压文件- 参数:
zipPath
- zip路径desPath
- 目标路径(可为空,默认是zip所在目录)- API Note:
// 解压a.zip到默当前目录(/path/to) Files.unzip("/path/to/a.zip", null); // 解压a.zip到/path/to/b Files.unzip("/path/to/a.zip", "/path/to/b");
-
unzip
在本目录下解压文件- 参数:
zipPath
- zip文件路径- API Note:
// 解压a.zip到/path/to Files.unzip("/path/to/a.zip");
-
unzip
解压文件- 参数:
zip
- zip文件desPath
- 目标路径- 另请参阅:
-
unzip
在本目录下解压文件- 参数:
zip
- zip文件- 另请参阅:
-
read
读取文件到字符串- 参数:
path
- 源文件路径cs
- 文件编码- 返回:
- 结果字符串
- API Note:
// 使用默认编码(UTF-8)读取a.txt到结果字符串 String res = Files.read("./a.txt", null); // 使用GBK编码读取a.txt到结果字符串 String res2 = Files.read("./a.txt", Charset.forName("GBK"));
-
read
使用UTF-8编码读取文件到字符串- 参数:
path
- 源文件路径- 返回:
- 结果字符串
- API Note:
// 使用默认编码(UTF-8)读取a.txt到结果字符串 String res = Files.read("./a.txt");
-
read
读取文件到字符串- 参数:
src
- 源文件cs
- 文件编码(可为空,默认是UTF-8)- 返回:
- 结果字符串
- 另请参阅:
-
read
使用UTF-8编码读取文件到字符串- 参数:
src
- 源文件- 返回:
- 结果字符串
- 另请参阅:
-
readToBytes
读取文件到byte数组- 参数:
path
- 源路径- 返回:
- 结果数组
- API Note:
// 读取a.txt到byte数组 var bs = Files.readToBytes("./a.txt");
-
readToBytes
读取文件到byte数组- 参数:
src
- 源文件- 返回:
- 结果数组
- 另请参阅:
-
list
列出一个目录的一级文件/文件夹- 参数:
path
- 文件夹路径- 返回:
- 结果列表
- 从以下版本开始:
- 2.9
- API Note:
// 列出a目录的一级文件/文件夹到列表中 var list = Files.list("/path/to/a");
-
list
列出一个目录的一级文件/文件夹- 参数:
dir
- 文件夹File对象- 返回:
- 结果列表
- 从以下版本开始:
- 2.9
- 另请参阅:
-
lines
读取文件中的所有行到字符串流- 参数:
path
- 文件路径cs
- 文件编码- 返回:
- 所有行集合
- 从以下版本开始:
- 1.8
- API Note:
// 获取a.txt所有行到Stream(使用默认UTF-8编码)并打印 Files.lines("./a.txt", null) .forEach(System.out::println); // 获取a.txt所有行到Stream(使用GBK编码)并打印 Files.lines("./a.txt", Charset.forName("GBK")) .forEach(System.out::println);
-
lines
使用UTF-8编码读取文件中的所有行到字符串流- 参数:
path
- 文件路径- 返回:
- 所有行集合
- 从以下版本开始:
- 1.8
- API Note:
// 读取a.txt所有行到Stream(使用UTF-8编码)并打印 Files.lines("./a.txt") .forEach(System.out::println);
-
lines
读取文件中的所有行到字符串流- 参数:
src
- 文件对象cs
- 文件编码(可为空,默认是UTF-8编码)- 返回:
- 所有行集合
- 从以下版本开始:
- 1.8
- 另请参阅:
-
lines
使用UTF-8编码读取文件中的所有行到字符串流- 参数:
src
- 文件对象- 返回:
- 所有行集合
- 从以下版本开始:
- 1.8
- 另请参阅:
-
out
把byte数组输出到文件- 参数:
bs
- byte数组desPath
- 目标文件路径appendMode
- 是否为追加模式- API Note:
// 将byte数组bs输出到a.txt中(非追加模式) Files.out(bs, "./a.txt", null); // 将byte数组bs输出到a.txt中(追加模式) Files.out(bs, "./a.txt", true);
-
out
用非追加模式把byte数组输出到文件- 参数:
bs
- byte数组desPath
- 目标文件路径- API Note:
// 将byte数组bs输出到a.txt(非追加模式) Files.out(bs, "./a.txt");
-
out
把byte数组输出到文件- 参数:
bs
- byte数组desFile
- 目标文件appendMode
- 是否为追加模式(可为空,默认否)- 另请参阅:
-
out
用非追加模式把byte数组输出到文件- 参数:
bs
- byte数组desFile
- 目标文件- 另请参阅:
-
out
输出字符串到文件- 参数:
s
- 字符串desPath
- 文件路径charset
- 目标文件编码appendMode
- 是否用追加模式- API Note:
// 输出hello到a.txt(默认UTF-8编码,非追加模式) Files.out("hello", "./a.txt", null, null); // 输出hello到a.txt(GBK编码,追加模式) Files.out("hello", "./a.txt", Charset.forName("GBK"), true);
-
out
使用UTF-8编码输出字符串到文件- 参数:
s
- 字符串desPath
- 文件路径appendMode
- 是否用追加模式- API Note:
// 使用UTF-8编码输出hello到a.txt(非追加模式) Files.out("hello", "./a.txt", null); // 使用UTF-8编码输出hello到a.txt(追加模式) Files.out("hello", "./a.txt", true);
-
out
使用非追加模式和UTF-8编码输出字符串到文件- 参数:
s
- 字符串desPath
- 文件路径- API Note:
// 使用UTF-8编码,非追加模式将hello输出到a.txt Files.out("hello", "./a.txt");
-
out
输出字符串到文件- 参数:
s
- 字符串des
- 目标文件charset
- 目标文件编码名称(可为空,默认UTF-8编码)appendMode
- 是否用追加模式(可为空,默认否)- 另请参阅:
-
out
使用UTF-8编码输出字符串到文件- 参数:
s
- 字符串des
- 目标文件appendMode
- 是否用追加模式- 另请参阅:
-
out
使用非追加模式和UTF-8编码输出字符串到文件- 参数:
s
- 字符串des
- 目标文件- 另请参阅:
-
out
输入流输出到文件- 参数:
in
- 输入流path
- 文件路径appendMode
- 是否用追加模式- API Note:
// 将输入流in输出到a.txt中(非追加模式) Files.out(in, "./a.txt", null); // 将输入流in输出到a.txt中(追加模式) Files.out(in, "./a.txt", true);
-
out
输入流输出到文件- 参数:
in
- 输入流des
- 文件File对象appendMode
- 是否用追加模式- 另请参阅:
-
createFile
创建新文件- 参数:
path
- 新文件路径- 从以下版本开始:
- 1.8
- API Note:
// 创建a.txt(父目录可以不存在) Files.createFile("/path/to/what/a.txt");
-
createFile
创建新文件- 参数:
f
- 文件对象- 从以下版本开始:
- 1.8
- 另请参阅:
-
createTempFile
创建临时文件(名称是时间戳)- 返回:
- 临时文件的绝对路径
- 从以下版本开始:
- 3.3
- API Note:
// 创建临时文件,并接收临时文件的绝对路径 var filePath = Files.createTempFile();
-
createTempFile
创建临时文件- 参数:
fileName
- 文件名称- 返回:
- 临时文件的绝对路径
- 从以下版本开始:
- 3.3
- API Note:
// 创建a.txt,并接收临时文件的绝对路径 var filePath = Files.createTempFile("a.txt");
-
createTempDir
创建临时文件夹(名称是时间戳)- 返回:
- 临时文件夹的绝对路径
- 从以下版本开始:
- 3.3
- API Note:
// 创建临时文件夹,并接收它的绝对路径 var dirPath = Files.createTempDir(); // 在临时文件夹中创建文件a.txt Files.createFile(dirPath + "/a.txt");
-
createTempDir
创建临时文件夹- 参数:
dirName
- 文件夹名称- 返回:
- 临时文件夹的绝对路径
- 从以下版本开始:
- 3.3
- API Note:
// 创建临时文件夹dir,并接收它的绝对路径 var dirPath = Files.createTempDir("dir"); // 在临时文件夹dir中创建文件a.txt Files.createFile(dirPath + "/a.txt");
-
mkdirs
创建多级目录- 参数:
path
- 多级目录路径- API Note:
// 创建a/b/c目录 Files.mkdirs("/path/to/a/b/c");
-
mkdirs
创建多级目录- 参数:
dir
- 多级目录File对象- 另请参阅:
-
exists
判断文件/文件夹是否存在- 参数:
path
- 文件/文件夹路径- 返回:
- 是否存在
- 从以下版本开始:
- 1.8
- API Note:
// 判断a.txt是否存在 boolean res = Files.exists("/path/to/a.txt");
-
exists
判断路径是否存在- 参数:
f
- 路径的File对象- 返回:
- 是否存在
- 从以下版本开始:
- 1.8
- 另请参阅:
-
isFile
判断路径是否是文件- 参数:
path
- 文件路径- 返回:
- 是否是文件
- 从以下版本开始:
- 3.6
- API Note:
// 判断a.txt是否是文件 boolean res = Files.isFile("/path/to/a.txt");
-
isFile
判断路径是否是文件- 参数:
f
- 路径的File对象- 返回:
- 是否是文件
- 从以下版本开始:
- 3.6
- 另请参阅:
-
isDir
判断路径是否是文件夹- 参数:
path
- 文件路径- 返回:
- 是否是文件夹
- 从以下版本开始:
- 3.6
- API Note:
// 判断a是否是文件夹 boolean res = Files.isDir("/path/to/a");
-
isDir
判断路径是否是文件夹- 参数:
f
- 路径的File对象- 返回:
- 是否是文件夹
- 从以下版本开始:
- 3.6
- 另请参阅:
-
getFileInfo
文件信息- 参数:
path
- 文件/文件夹路径- 返回:
- FileInfo对象
- 从以下版本开始:
- 3.6
- API Note:
// 获取a目录的信息 FileInfo info = Files.getFileInfo("/path/to/a"); long fileCount = fileInfo.fileCount(); long dirCount = fileInfo.dirCount(); long totalLength = fileInfo.totalLength(); // 获取b.txt文件的信息 FileInfo info2 = Files.getFileInfo("./b.txt"); long
-
getFileInfo
文件信息- 参数:
src
- 文件/文件夹的File对象- 返回:
- FileInfo对象
- 从以下版本开始:
- 3.6
- 另请参阅:
-
getLength
获取文件/文件夹的字节长度- 参数:
path
- 文件/文件夹路径- 返回:
- 文件/文件夹字节长度
- 从以下版本开始:
- 3.6
- API Note:
// 获取a.jpg的文件字节长度 long length = Files.getLength("/path/to/a.jpg"); // 获取b文件夹的字节总长度 long length = Files.getLength("/path/to/b");
-
getLength
获取文件/文件夹的字节长度- 参数:
src
- 文件/文件夹的File对象- 返回:
- 文件/文件夹字节长度
- 从以下版本开始:
- 3.6
- 另请参阅:
-
getReadableLength
获取文件/文件夹的人类可读长度- 参数:
path
- 文件/文件夹路径- 返回:
- 文件/文件夹的人类可读长度
- 从以下版本开始:
- 3.6
-
getReadableLength
获取文件/文件夹的人类可读长度- 参数:
src
- 文件/文件夹的File对象- 返回:
- 文件/文件夹的人类可读长度
- 从以下版本开始:
- 3.6
- 另请参阅:
-
getParentPath
获取指定路径的父路径- 参数:
path
- 指定路径- 返回:
- 父路径
- 从以下版本开始:
- 3.4
- API Note:
// 获取a.txt的父路径 var parentPath = Files.getParentPath("/path/to/a.txt");
-
getAbsolutePath
从相对路径获取绝对路径- 参数:
relativePath
- 相对路径- 返回:
- 绝对路径字符串
- 从以下版本开始:
- 3.2
- API Note:
// 获取a.txt的绝对路径 var absolutePath = Files.getAbsolutePath("./a.txt");
-
getEncoding
获取文件的编码字符集- 参数:
path
- 文件路径- 返回:
- 编码字符集
- 从以下版本开始:
- 2.7
- API Note:
// 获取a.txt的编码字符集 Charset c = Files.getEncoding("./a.txt").orElseThrow();
-
getEncoding
获取文件的编码字符集- 参数:
f
- 文件对象- 返回:
- 编码字符集
- 从以下版本开始:
- 2.7
- 另请参阅:
-
setEncoding
设置文件编码(自动识别原编码)- 参数:
path
- 源文件路径newCharset
- 新编码- 从以下版本开始:
- 2.7
- API Note:
// 设置a.txt的编码为GBK Files.setEncoding("./a.txt", Charset.forName("GBK"));
-
setEncoding
设置文件编码(自动识别原编码)- 参数:
src
- 源文件newCharset
- 新编码名称- 从以下版本开始:
- 2.7
- 另请参阅:
-
setEncoding
设置文件编码- 参数:
path
- 源文件路径oldCharset
- 旧编码newCharset
- 新编码- API Note:
// 将原来UTF-8编码的a.txt设置为GBK编码 Files.setEncoding("./a.txt", StandardCharsets.UTF_8, Charset.forName("GBK"));
-
setEncoding
设置文件编码- 参数:
src
- 源文件oldCharset
- 旧编码名称newCharset
- 新编码名称- 另请参阅:
-
renameByTime
按时间重命名(升序)- 参数:
dirPath
- 搜索文件夹路径suffix
- 后缀(含小数点)- API Note:
// 将a文件夹中一级目录所有文件按照时间重命名为jpg类型 // 时间越早序号越小,重命名结果是:1.jpg, 2.jpg, ... Files.renameByTime("/path/to/a", ".jpg");
-
renameByTime
按时间重命名- 参数:
dir
- 搜索文件夹对象suffix
- 后缀(含小数点)- 另请参阅:
-
findAll
搜索路径下符合要求的所有文件和文件夹- 参数:
dirPath
- 搜索文件夹路径filter
- 文件过滤器- 返回:
- 含结果文件和文件夹的集合
- API Note:
// 在a目录中查找名称中包含jmc的文件/文件夹 var findResult = Files.findAll("/path/to/a", f.getName().contains("jmc")); // 获取文件列表 var files = findResult.files(); // 获取文件夹列表 var dirs = findResult.dirs();
-
findAll
搜索路径下符合要求的所有文件和文件夹- 参数:
dirPath
- 搜索文件夹路径contains
- 文件或文件夹名称中包含的内容- 返回:
- 含结果文件和文件夹的集合
- API Note:
// 在a目录中查找名称包含jmc或者utils的文件/文件夹 var findResult = Files.findAll("/path/to/a", "jmc", "utils"); // 获取文件列表 var files = findResult.files(); // 获取文件夹列表 var dirs = findResult.dirs();
-
findFiles
搜索路径下符合要求的所有文件- 参数:
dirPath
- 搜索文件夹路径filter
- 文件过滤器- 返回:
- 含结果文件的列表
- API Note:
// 在a目录中查找名称包含jmc的文件 List<File> res = Files.findFiles("/path/to/a", f -> f.getName().contains("jmc"));
-
findFiles
搜索路径下符合要求的所有文件- 参数:
dirPath
- 搜索文件夹路径contains
- 文件名称中包含的内容- 返回:
- 含结果文件的列表
- API Note:
// 在a目录中查找名称包含jmc或者utils的文件 List<File> res = Files.findFiles("/path/to/a", "jmc", "utils");
-
findDirs
搜索路径下符合要求的所有文件夹- 参数:
dirPath
- 搜索文件夹路径filter
- 文件过滤器- 返回:
- 含结果文件夹的列表
- API Note:
// 在a目录中查找名称包含jmc的文件夹 List<File> res = Files.findDirs("/path/to/a", f -> f.getName().contains("jmc"));
-
findDirs
搜索路径下符合要求的所有文件夹- 参数:
dirPath
- 搜索文件夹路径contains
- 文件夹名称中包含的内容- 返回:
- 含结果文件的列表
- API Note:
// 在a目录中查找名称包含jmc或者utils的文件夹 List<File> res = Files.findDirs("/path/to/a", "jmc", "utils");
-
findAny
搜索单个文件- 参数:
path
- 搜索文件夹路径contains
- 文件名称包含内容- 返回:
- 搜索结果
- API Note:
// 在a目录中查找名称中包含jmc的任意一个文件 File res = findAny("/path/to/a", "jmc");
-
findAny
搜索单个文件- 参数:
dir
- 搜索的文件夹contains
- 文件名称包含内容- 返回:
- 搜索结果
- 另请参阅:
-
tree
树状图统计文件夹- 参数:
path
- 统计文件夹路径depth
- 搜索深度minMBSize
- 结果中的文件/文件夹最小多少MB- 返回:
- 文件树对象
- API Note:
// 获取a目录的文件和文件夹树状图,搜索深度是3,结果包含的文件/文件夹最小的大小为50MB var fileTree = Files.tree("/path/to/a", 3, 50); // 打印树状图 System.out.println(fileTree);
-
tree
树状图统计文件夹- 参数:
dir
- 搜索文件夹depth
- 搜索深度minMBSize
- 结果中的文件/文件夹最小多少MB- 返回:
- 文件树对象
- 另请参阅:
-
normalTree
普通树状图(搜索深度5层,结果中文件/文件夹最小大小为50MB)- 参数:
path
- 搜索文件夹路径- 返回:
- 文件树对象
- API Note:
// 获取a目录的文件和文件夹的普通树状图(搜索深度5层,结果中文件/文件夹最小大小为50MB) var fileTree = Files.normalTree("/path/to/a"); // 打印树状图 System.out.println(fileTree);
-
normalTree
普通树状图(搜索深度5层,结果中文件/文件夹最小大小为50MB)- 参数:
dir
- 搜索文件夹- 返回:
- 文件树对象
- 另请参阅:
-
singleTree
单层树状图(结果中文件/文件夹最小大小为50MB)- 参数:
path
- 搜索文件夹路径- 返回:
- 文件树对象
- API Note:
// 获取a目录的文件和文件夹的单层树状图(结果中文件/文件夹最小大小为50MB) var fileTree = Files.singleTree("/path/to/a"); // 打印树状图 System.out.println(fileTree);
-
singleTree
单层树状图(结果中文件/文件夹最小大小为50MB)- 参数:
dir
- 搜索文件夹- 返回:
- 文件树对象
- 另请参阅:
-
wholeTree
完整树状图(层数、文件/文件夹大小无限制)- 参数:
path
- 搜索文件夹路径- 返回:
- 文件树对象
- API Note:
// 获取a目录的文件和文件夹的完整树状图(层数,文件/文件夹大小无限制) var fileTree = Files.wholeTree("/path/to/a"); // 打印树状图 System.out.println(fileTree);
-
wholeTree
完整树状图(层数、文件/文件夹大小无限制)- 参数:
dir
- 搜索文件夹- 返回:
- 文件树对象
- 另请参阅:
-