如何使用Java从一个文件夹中获取所有文本文件?

我需要从文件夹中读取所有“.txt”文件(用户需要选择此文件夹)。

请指教怎么做?

你可以使用filenamefilter类,这是非常简单的用法public static void main(String [] args)throws IOException {

  File f = new File("c:\\mydirectory"); FilenameFilter textFilter = new FilenameFilter() { public boolean accept(File dir, String name) { return name.toLowerCase().endsWith(".txt"); } }; File[] files = f.listFiles(textFilter); for (File file : files) { if (file.isDirectory()) { System.out.print("directory:"); } else { System.out.print(" file:"); } System.out.println(file.getCanonicalPath()); } } 

只需创建一个filenamefilter实例,然后根据需要创建覆盖接受方法

假设您已经拥有该目录,您可以执行以下操作:

 File directory= new File("user submits directory"); for (File file : directory.listFiles()) { if (FileNameUtils.getExtension(file.getName()).equals("txt")) { //dom something here. } } 

可以在此处找到FileNameUtils.getExtension()。

编辑:您似乎想要做的是从Web浏览器访问文件结构。 根据之前的SOpost,由于安全原因,您不想做什么。

您需要读取目录并在其中进行迭代。

对于文件系统的Java访问而言,这不仅仅是关于MVC的问题

我编写了以下函数来搜索目录中的所有文本文件。

 public static void parseDir(File dirPath) { File files[] = null; if(dirPath.isDirectory()) { files = dirPath.listFiles(); for(File dirFiles:files) { if(dirFiles.isDirectory()) { parseDir(dirFiles); } else { if(dirFiles.getName().endsWith(".txt")) { //do your processing here.... } } } } else { if(dirPath.getName().endsWith(".txt")) { //do your processing here.... } } } 

看看这是否有帮助。

为用户提供一个文本框,用于输入目录路径。

 File userDir=new File("userEnteredDir"); File[] allfiles=useDir.listFiles(); 

使用getExtension()方法迭代allFiles以过滤.txt文件