思路:1.新建一個File對象,其中files爲要遍歷的文件地址。
File file = new File(files);
2.申請兩個ArryList空間,一個存放目錄,一個存放文件
List<File> fileList = new ArrayList<File>();//文件存儲 List<File> filesListDir = new ArrayList<File>();//目錄存儲
3.讀取目錄下的所有文件
File[] fileArr = file.listFiles(); //獲取目錄下文件
4.判斷是否是文件,如果是則放在存文件,如果不是則存放目錄到
for (File f : fileArr) { if (f.isFile()) { fileList.add(f.getAbsoluteFile()); } else if (f.isDirectory()) { filesListDir.add(f); } }
5.對存放目錄的ArryList進行遍歷,把目錄繼續放在存放目錄的ArryList中,文件放在存放文件的ArryList中。這樣,以存放目錄的ArryList非空爲循環條件,就會一直遍歷下去,直到沒有目錄。
while (!filesListDir.isEmpty()){ /**** * 每讀取一次目錄,刪除ArryList中第一個目錄。 */ File files2 = filesListDir.remove(0); File [] filesdir = files2.listFiles(); for (File f3 : filesdir) { if (f3.isDirectory()) { filesListDir.add(f3); } else if (f3.isFile()) { fileList.add(f3.getAbsoluteFile()); } } }
如果需要上傳,只需循環遍歷存放文件的ArryList上傳即可
for (File f1 : fileList) { }