欢迎访问宙启技术站
智能推送

使用Java中的File函数列出当前目录下所有文件名

发布时间:2023-05-25 13:56:26

File类是Java中用于操作文件和目录的类。使用该类可以实现文件和目录的创建、删除、移动、复制、重命名、查找等操作。在很多情况下,我们需要获取当前目录下所有的文件名,进行相关的操作,比如排序、筛选、统计等。本篇文章将介绍使用Java中的File函数列出当前目录下所有文件名的方法。

一、获取当前目录

在Java中,我们可以使用System.getProperty("user.dir")函数来获取当前目录。该函数返回一个表示当前用户工作目录的字符串。例如,以下代码将输出当前目录的绝对路径:

String currentPath = System.getProperty("user.dir");

System.out.println("当前目录:" + currentPath);

二、列出当前目录下的所有文件名

Java中的File类提供了多种方法来列出当前目录下的所有文件名,常用的有以下两种方法:

1.使用File类的list函数

File类的list函数可以列出指定目录中的所有文件和子目录的名称。这个函数返回一个字符串数组,其中每个字符串表示一个文件或目录的名称。以下代码演示了如何使用File类的list函数列出当前目录下的所有文件名:

File currentDir = new File(System.getProperty("user.dir"));

String[] fileList = currentDir.list();

for (String fileName : fileList) {

    System.out.println("文件名:" + fileName);

}

2.使用File类的listFiles函数

File类的listFiles函数可以返回一个当前目录下所有文件的File对象数组。以下代码演示了如何使用File类的listFiles函数列出当前目录下的所有文件名:

File currentDir = new File(System.getProperty("user.dir"));

File[] fileList = currentDir.listFiles();

for (File file : fileList) {

    if (file.isFile()) {

        System.out.println("文件名:" + file.getName());

    }

}

三、过滤不需要列出的文件名

有些情况下,我们需要过滤掉不需要列出的文件名,比如隐藏文件、特定扩展名的文件等。Java中提供了FileFilter接口和FilenameFilter接口,可以帮助我们过滤文件名。以下代码演示了如何使用FileFilter接口和FilenameFilter接口过滤掉隐藏文件和txt文件:

// 使用FileFilter接口过滤隐藏文件

FileFilter fileFilter = new FileFilter() {

    @Override

    public boolean accept(File file) {

        return !file.isHidden();

    }

};

File[] fileList = currentDir.listFiles(fileFilter);

for (File file : fileList) {

    if (file.isFile() && file.getName().endsWith(".txt")) {

        System.out.println("文件名:" + file.getName());

    }

}

四、使用递归方式列出所有文件名

上述方法可以列出当前目录下的所有文件名,但是无法列出子目录中的文件名。如果想要列出所有子目录中的文件名,可以使用递归方式。以下代码演示了如何使用递归方式列出所有文件名:

public static void listAllFiles(File dir) {

    File[] fileList = dir.listFiles();

    for (File file : fileList) {

        if (file.isFile()) {

            System.out.println("文件名:" + file.getName());

        } else if (file.isDirectory()) {

            listAllFiles(file);

        }

    }

}

使用listAllFiles函数,可以列出当前目录及其子目录下所有文件名。

总结

以上就是使用Java中的File函数列出当前目录下所有文件名的方法,通过File类的list函数和listFiles函数可以列出当前目录下的所有文件名,通过FileFilter接口和FilenameFilter接口可以过滤不需要列出的文件名,通过递归方式可以列出所有子目录下的文件名。掌握了以上方法,就可以方便地对文件进行相关的操作了。