持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情
前言
上一篇文章记录了两种解压相关的方法,到最后那些代码评审后都删掉了。重新明确了需求,整套代码的入参只有一个filePath;基于这个filePath开展下面的业务处理;因为主要的业务是处理文件里的内容,所以第一步就变成了根据地址获取文件;
获取特定地址下的所有文件路径
/**
* 获取文件夹下所有文件的路径
*
* @param filepath
* @return
*/
public static List<String> getPaths(String filepath) {
File file = new File(filepath);
File[] tempList;
List<String> list = new ArrayList<String>();
//判断地址是否为文件夹
if (file.isDirectory()) {
//拿到该地址下所有文件路径
tempList = file.listFiles();
list = new ArrayList<String>();
for (int i = 0; i < tempList.length; i++) {
//判断是否为文件
if (tempList[i].isFile()) {
//拿到指定数组中的路径,并加入到集合中
list.add(tempList[i].getAbsolutePath());
}
if (tempList[i].isDirectory()) {
//如果是文件夹调用本方法,并将list内容加入到list集合中
list.addAll(getPaths(tempList[i].getAbsolutePath()));
}
}
} else if (file.isFile()) {
String s = file.getAbsolutePath();
list.add(s);
}
return list;
}
java.io.File
File类的使用:
-
- File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹)
-
- File类声明在java.io包下
-
- File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法, 并未涉及到写入或读取文件内容的操作。如果需要读取或写入文件内容,必须使用IO流来完成。
-
-
后续File类的对象常会作为参数传递到流的构造器中,指明读取或写入的"终点".
-
file.listFiles()
返回一个抽象路径名数组,表示该抽象路径名所表示的目录中的文件。如果此抽象路径名不表示目录,则此方法返回null。否则,将返回File对象数组,每个文件或目录对应一个File对象数组。
用法:
file.listFiles()
参数: 此方法不接受任何参数
返回值: 返回File对象数组
注意: 此方法无法保证结果数组中的字符串以任何特定顺序出现
file.isDirectory()
此函数确定由抽象文件名表示的文件或目录是否为Directory。如果抽象文件路径为Directory,则函数返回true,否则返回false。
用法:
file.isDirectory()
参数: 此方法不接受任何参数。
返回值: 该函数返回表示抽象文件路径是否为目录的布尔值
异常: 如果对文件的读取访问被拒绝,则此方法将引发Security Exception
file.isFile()
此函数确定是文件名还是用抽象文件名表示的目录是File。如果抽象文件路径为File,则该函数返回true;否则,返回false。
用法:
file.isFile()
参数: 此方法不接受任何参数。
返回类型该函数返回表示抽象文件路径是否为file的布尔数据类型
异常: 如果对文件的写访问被拒绝,则此方法将引发安全性异常
file.getAbsolutePath()
方法返回此抽象路径名的绝对路径名字符串。 用法:
file.getAbsolutePath()
参数: 此方法不接受任何参数。
返回类型它以String形式返回文件对象的完整路径。
异常: 如果无法访问所需的值,则此方法可能会引发异常(即Security Exception)
总结
java.io.file类有很多内容,这次只用到了上述的几个函数;主要是记录上面那个获取特定地址下的所有文件路径的方法;更多内容还在学习中~