列出给定文件夹中的文件和子目录文件

时间:2018-10-10 11:39:42

标签: java file

我尝试列出一个文件夹及其子目录中的所有文件,以一张一张地上传。它无法列出文件夹子文件夹中的文件,而仅使用同一文件夹中的文件多次。

    int num=1;
    public void listFilesAndFilesSubDirectories(String directoryName) throws InterruptedException {
        File directory = new File(directoryName);
        File[] fList = directory.listFiles();
        Arrays.sort(fList);
        String filestatus;


        for (File file : fList){
            if (file.isFile() && !(file.getName().contains("nfo"))){
                int index = file.getName().lastIndexOf("_");
                if(index <= 0){
                    filestatus="INVALID";
                }else{
                    filestatus = file.getName().substring(0, index);
                }
            } else if (file.isDirectory()){
                listFilesAndFilesSubDirectories(file.getParent());
            }
            num++;
        }
    }

2 个答案:

答案 0 :(得分:2)

替换:

listFilesAndFilesSubDirectories(file.getParent());

具有:

listFilesAndFilesSubDirectories(file.getAbsolutePath());

答案 1 :(得分:1)

您也可以使用“树”:

private DefaultMutableTreeNode listFile(File file, DefaultMutableTreeNode node){

int count = 0;      

if(file.isFile())

  return new DefaultMutableTreeNode(file.getName());

else{

  File[] list = file.listFiles();

  if(list == null)

    return new DefaultMutableTreeNode(file.getName());


  for(File nom : list){

    count++;

    //not more than 5 childs node

    if(count < 5){

      DefaultMutableTreeNode subNode;

      if(nom.isDirectory()){

        subNode = new DefaultMutableTreeNode(nom.getName()+"\\");

        node.add(this.listFile(nom, subNode));

      }else{

        subNode = new DefaultMutableTreeNode(nom.getName());

      }

      node.add(subNode);

    }

  }

  return node;

}

}

查看更多here 该文档使用法语,但您可能会找到所需的文档。