为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法在java的帮助下列出特定文件夹中的所有文档,包括来自所有子文件夹中的文件?

有没有办法在java的帮助下列出特定文件夹中的所有文档,包括来自所有子文件夹中的文件?

千巷猫影 2022-09-01 17:40:17
我想获取文件夹中存在的所有文档的列表。包括文件夹的子文件夹中存在的那些。目前,我只能编写代码,循环访问文件夹中存在的文档,而不能循环访问其子文件夹。     File dir = new File("C:\\Users\\...\\Forms");     File[] list = dir.listFiles();     for(int i=0; i<list.length;i++)     {     ...     }是否有Java代码可以从文件夹中获取所有文档,包括其子文件夹?
查看完整描述

2 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

You Can use the below code!!


package model;



import java.io.File;

import java.util.ArrayList;

import java.util.List;


public class iterateThroghFolder {

    public iterateThroghFolder() {

        super();

    }


    static List<File> file = new ArrayList<File>();

    static List<File> list = new ArrayList<File>();;


    public static void main(String[] args) {

        File file = new File("C:/Users/c_umashe/Desktop/Test"); //Required Path


        boolean b = file.isDirectory();

        if (b) {

            iterateOver(file);

        } else{

             list.add(file); 

        }

        System.out.println(list.size());


    }



    public static void iterateOver(File file) {

        File[] innerFiles = file.listFiles();

        int size = innerFiles.length;

        for (int i = 0; i < size; i++) {           

            if (innerFiles[i].isFile()) {            

                    list.add(innerFiles[i]);           

            } else { //If it is a directory

                iterateOver(innerFiles[i]);

            }

        }

    }

}


查看完整回答
反对 回复 2022-09-01
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

 public void listf(String directoryName, List<File> files) {

        File directory = new File(directoryName);


        // Get all files from a directory.

        File[] fList = directory.listFiles();

        if(fList != null)

            for (File file : fList) {      

                if (file.isFile()) {

                    files.add(file);

                } else if (file.isDirectory()) {

                    listf(file.getAbsolutePath(), files);

                }

            }

        }

    }

您可以将上述方法调用为


        ArrayList<File> f = new ArrayList<File>(); 

        listf("C://Users/xyz", f);

        System.out.print(f.size()); // This is the list of files you want.


查看完整回答
反对 回复 2022-09-01
  • 2 回答
  • 0 关注
  • 65 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信