猿问

Java:在指定文件夹中查找.txt文件

是否有内置的Java代码可以解析给定的文件夹并在其中搜索.txt文件?



暮色呼如
浏览 1155回答 3
3回答

料青山看我应如是

您可以使用该类listFiles()提供的方法java.io.File。import java.io.File;import java.io.FilenameFilter;public class Filter {    public File[] finder( String dirName){        File dir = new File(dirName);        return dir.listFiles(new FilenameFilter() {                  public boolean accept(File dir, String filename)                      { return filename.endsWith(".txt"); }        } );    }}

江户川乱折腾

尝试:List<String> textFiles(String directory) {&nbsp; List<String> textFiles = new ArrayList<String>();&nbsp; File dir = new File(directory);&nbsp; for (File file : dir.listFiles()) {&nbsp; &nbsp; if (file.getName().endsWith((".txt"))) {&nbsp; &nbsp; &nbsp; textFiles.add(file.getName());&nbsp; &nbsp; }&nbsp; }&nbsp; return textFiles;}您想在这种情况下进行不区分大小写的搜索:&nbsp; &nbsp; if (file.getName().toLowerCase().endsWith((".txt"))) {如果要在目录树中递归搜索文本文件,则应该能够将上述内容作为递归函数或使用堆栈的迭代函数进行调整。

喵喵时光机

我根据在Google上找到的帖子制定了解决方案。而且我认为发布它也是没有害处的,即使它是旧线程也是如此。该代码的唯一优点是它还可以遍历子目录。import java.io.File;import java.io.FileFilter;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import org.apache.commons.io.filefilter.DirectoryFileFilter;import org.apache.commons.io.filefilter.WildcardFileFilter;方法如下:List <File> exploreThis(String dirPath){&nbsp; &nbsp; File topDir = new File(dirPath);&nbsp; &nbsp; List<File> directories = new ArrayList<>();&nbsp; &nbsp; directories.add(topDir);&nbsp; &nbsp; List<File> textFiles = new ArrayList<>();&nbsp; &nbsp; List<String> filterWildcards = new ArrayList<>();&nbsp; &nbsp; filterWildcards.add("*.txt");&nbsp; &nbsp; filterWildcards.add("*.doc");&nbsp; &nbsp; FileFilter typeFilter = new WildcardFileFilter(filterWildcards);&nbsp; &nbsp; while (directories.isEmpty() == false)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; List<File> subDirectories = new ArrayList();&nbsp; &nbsp; &nbsp; &nbsp; for(File f : directories)&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; subDirectories.addAll(Arrays.asList(f.listFiles((FileFilter)DirectoryFileFilter.INSTANCE)));&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; textFiles.addAll(Arrays.asList(f.listFiles(typeFilter)));&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; directories.clear();&nbsp; &nbsp; &nbsp; &nbsp; directories.addAll(subDirectories);&nbsp; &nbsp; }&nbsp; &nbsp; return textFiles;}
随时随地看视频慕课网APP

相关分类

Java
我要回答