Java中通過File類方法洗掉指定檔案夾下的全部檔案

- 對delete的解說

那么問題來了!!!
(②中的問題,怎么洗掉檔案夾里所有檔案,想必很多同學也和我一樣懵,)
別著急(往下看)


要用到的方法

(遞回思想) 如果檔案夾里面還有檔案夾,就繼續往下找(可能不太官方,個人理解)
接下來 代碼展示
方法一:
package com.study;
import java.io.File;
import java.io.IOException;
/**
1. 應用場景
2. delete洗掉只能洗掉空檔案夾 和檔案
3. 洗掉指定檔案夾
*/
public class Test1 {
public static void main(String[] args) throws IOException {
File f = new File("D://B");
deleteFile(f);//洗掉完后并沒有洗掉根目錄
f.delete();//洗掉根目錄
if (!f.exists()){
//控制臺列印
System.out.println("洗掉成功");
}
}
private static void deleteFile(File file) throws IOException {
/**
* File[] listFiles()
* 回傳一個抽象路徑名陣列,這些路徑名表示此抽象路徑名表示的目錄中的檔案,
*/
File[] files = file.listFiles();
if (files!=null){//如果包含檔案進行洗掉操作
for (int i = 0; i <files.length ; i++) {
if (files[i].isFile()){
//洗掉子檔案
files[i].delete();
}else if (files[i].isDirectory()){
//通過遞回的方法找到子目錄的檔案
deleteFile(files[i]);
}
files[i].delete();//洗掉子目錄
}
}
}
}
方法二: 和上面一樣,把上面if代碼塊里的替換即可
if (files!=null){//如果包含檔案進行洗掉操作
for (File f:files) {
//判斷遍歷出的檔案是不是檔案
if (f.isFile()){
//如果是則直接洗掉
f.delete();
}else if (f.isDirectory()){//通過遞回的方法找到檔案夾里的檔案
deleteFile(f);
}
f.delete();//洗掉子目錄
}
}
思路
通過File類洗掉檔案夾全部內容:
- 只有當目錄中全部檔案洗掉掉之后才能洗掉目錄
- 通過遞回方式進入子目錄
- 最后洗掉根目錄
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/245201.html
標籤:java
上一篇:springboot 中使用httpclient或RestTemplate做MultipartFile檔案跨服務傳輸
下一篇:Java入門(一)
