1.不要使用遞歸方法調用。
public void traverse folder 1(字符串路徑){
int fileNum = 0,folder num = 0;
File file =新文件(路徑);
if (file.exists()) {
LinkedList & lt文件& gtlist = new LinkedList<。文件& gt();
file[]files = file . list files();
for(文件file2 : files) {
if (file2.isDirectory()) {
system . out . println(" folder:"+file 2 . getabsolutepath());
list . add(file 2);
filenum++;
}否則{
system . out . println(" file:"+file 2 . getabsolutepath());
folder num++;
}
}
文件temp _ file
而(!list.isEmpty()) {
temp _ file = list . remove first();
files = temp _ file . list files();
for(文件file2 : files) {
if (file2.isDirectory()) {
system . out . println(" folder:"+file 2 . getabsolutepath());
list . add(file 2);
filenum++;
}否則{
system . out . println(" file:"+file 2 . getabsolutepath());
folder num++;
}
}
}
}否則{
System.out.println("文件不存在);
}
System.out.println("文件夾* *有:"+folderNum+",文件* *有:"+fileNum ");
}
2.使用遞歸方法調用
公共靜態列表& lt文件& gtgetFileList(字符串路徑){
File dir =新文件(strPath);
file[]files = dir . list files();//這個文件目錄下的所有文件都放入數組中。
如果(文件!= null) {
for(int I = 0;我& ltfiles.lengthi++) {
字符串fileName = files[i]。getName();
If (files[i].isDirectory()) {//確定它是文件還是文件夾。
getFileList(files[i].getAbsolutePath());//獲取文件的絕對路徑
} else if(文件名。endswith(" avi "){//確定文件名是否以。阿維。
String strFileName = files[i]。getAbsolutePath();
system . out . println("-"+strFileName);
filelist . add(files[I]);
}否則{
繼續;
}
}
}
返回文件列表;
}