获取特定地址下的所有文件路径

129 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 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类的使用:

    1. File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹)
    1. File类声明在java.io包下
    1. File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法, 并未涉及到写入或读取文件内容的操作。如果需要读取或写入文件内容,必须使用IO流来完成。
    1. 后续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类有很多内容,这次只用到了上述的几个函数;主要是记录上面那个获取特定地址下的所有文件路径的方法;更多内容还在学习中~