public static List<File> scanFolder(File folder) {
List<File> scanedFile = new ArrayList<File>();
if(!folder.isDirectory()) {
return scanedFile;
}
Queue<File> folderNeedToScan = new LinkedList<>();
File[] files = folder.listFiles();
for(File subFile : files) {
if(subFile.isFile()) {
scanedFile.add(subFile);
} else if(subFile.isDirectory()) {
folderNeedToScan.add(subFile);
}
}
while(!folderNeedToScan.isEmpty()) {
File scanedFolder = folderNeedToScan.poll();
for(File subFile: scanedFolder.listFiles()) {
if(subFile.isFile()) {
scanedFile.add(subFile);
} else if(subFile.isDirectory()) {
folderNeedToScan.add(subFile);
}
}
}
return scanedFile;
}