要遞歸首先須要有方法。遞歸,即方法本身調用本身。通常在程序中不多使用,但在這個實現中,咱們沒法知道文件夾的深度,更沒法根據深度來實現循環的嵌套。java
遞歸兩個重要條件:數組
例如咱們要實現求1*2*3*4*5,咱們能夠把5和1*2*3*4的結果相乘,而如何獲取1*2*3*4的結果呢,天然就是4與1*2*3*4的結果相乘了。而在這一過程當中,咱們始終是作同一件事:將n與n-1的階乘進行相乘。固然不可能無止境的乘下去,因此咱們須要一個終止條件:n == 1。在這兩個條件下,咱們即可以實現遞歸求得n的階乘了。ide
用代碼實現以下:測試
1 public static int jieCheng(int n) { 2 if (n==1) { //終止條件 3 return 1; 4 } else { 5 return n * jieCheng(n-1); //n * (n-1)! 6 } 7 }
Java文件類以抽象的方式表明文件名和目錄路徑名。該類主要用於文件和目錄的建立、文件的查找和文件的刪除等。spa
File(String pathname) 經過將給定路徑名字符串轉換爲抽象路徑名來建立一個新 File
實例。
isDirectory() 測試此抽象路徑名錶示的文件是不是一個目錄。
listFiles() 返回一個抽象路徑名數組,這些路徑名錶示此抽象路徑名錶示的目錄中的文件(獲取子目錄文件)。
delete() 刪除此抽象路徑名錶示的文件或目錄,若是文件夾中有文件存在,則該文件夾不能被刪除。
要刪除一個目錄下的全部文件和文件夾,咱們能夠分爲這麼幾步:3d
以下圖所示,把圈表明文件,方塊表明文件夾,則獲得以下的執行順序:code
用代碼實現就是如下的效果:對象
1 public static void delDir(File file) { 2 if (file.isDirectory()) { 3 File zFiles[] = file.listFiles(); 4 for (File file2 : zFiles) { 5 delDir(file2); 6 } 7 file.delete(); 8 } else { 9 file.delete(); 10 } 11 }