循环遍历一个文件夹中存在的不同文件

时间:2012-10-14 22:19:46

标签: java

我有一个java程序,它读取文件文本中的每一行并处理文件的文本,然后打印结果。我需要对特定文件夹(目录)中存在的每个文件执行相同的操作。所以,我需要程序遍历文件夹中的每个文件并提取文本内容..etc。我的问题是如何使用Java循环遍历文件夹中的每个文件。

2 个答案:

答案 0 :(得分:6)

创建引用目录的File对象后,可以调用listFiles来获取目录中所有文件的数组。

// assuming myDir is the File object that represents the directory
File[] dirContent = myDir.listFiles();
for (File f : dirContent)
{
    if (!f.isDirectory())
    {
        // process file.
    }
}

或者,您可以通过使用适当的文件筛选器调用File#listFiles(FileFilter)来仅获取非目录的文件列表。 E.g:

// assuming myDir is the File object that represents the directory
File[] dirContent = myDir.listFiles(new FileFilter() {
    @Override boolean accept(File pathname)
    {
        return !pathname.isDirectory();
    }
});
for (File f : dirContent)
{
    // process file.
}

答案 1 :(得分:0)

我只想抛弃另一种方法来做到这一点。此文件搜索和处理软件:http://www.softpedia.com/get/File-managers/JFileProcessor.shtml https://github.com/stant/jfileprocessor

将允许您使用glob或正则表达式搜索文件,在子文件夹中搜索X或所有深度,按名称,大小,日期。您可以保存到列表窗口或文件。然后你可以运行一个groovy(想想java)脚本来做任何你想要的文件列表; zip或tar它们,修改列表字符串,如sed,delete,move,copy files,grep或ls -l它们等等。它还可以让您按下列表,例如添加,删除,从另一个列表中减去一个列表。

相关问题