File-用遞迴刪除某資料夾(資料夾下可能有檔案或資料夾)
阿新 • • 發佈:2018-11-17
利用遞迴演算法刪除某資料夾(包括其所有的子檔案及資料夾)
import java.io.File;
public class Dem01 {
public static void main(String[] args) {
File file = new File("E:\\JAVA_WORK");
deleteDirectory(file);
}
private static void deleteDirectory(File file) {
/**
* 若是檔案直接刪除
*/
if (file.isFile()) {
file.delete();
return;
}
if (file.isDirectory()) {
/**
* 若是資料夾,對其子資料夾遞迴呼叫deleteDirectory
*/
File[] files = file.listFiles();
for (File sub : files) {
deleteDirectory(sub);
}
// 刪除資料夾裡的所有檔案後,刪除空資料夾
String folderPath = file.getPath();// 已經沒有子檔案的資料夾路徑
File folder = new File(folderPath);
folder.delete();
}
}
}
利用遞迴檢視某資料夾裡的所有檔案目錄
import java.io.File;
public class Dem02 {
public static void main(String[] args) {
File file = new File("E:\\JAVA_WORK" );
listFiles(file, 0);
}
private static void listFiles(File file, int level) {
String preStr = "";
for (int i = 0; i < level; i++) {
preStr += " ";
}
System.out.println(preStr + file.getName());
if (file.isDirectory()) {
File[] files = file.listFiles();
for (File sub : files) {
listFiles(sub, level + 1);
}
}
}
}