0

I try to list all the files from a folder and its subdirectories to be uploaded one by one. It couldn't list files from subfolders of folder, just uses files from same folder multiple times.

 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
  • 1
    Shouldn't this line be: listFilesAndFilesSubDirectories(file.getPath()); ? Commented Oct 10, 2018 at 11:42
  • 3
    If the file is directory you should call recursively on that object not on its parent. Commented Oct 10, 2018 at 11:42

2 Answers 2

2

Replace:

listFilesAndFilesSubDirectories(file.getParent()); 

with:

listFilesAndFilesSubDirectories(file.getAbsolutePath()); 
Sign up to request clarification or add additional context in comments.

Comments

1

You can also use the "Tree" :

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; } 

}

see more here The doc is in french but you may find what you need.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.