Java如何通過(guò)File類方法刪除指定文件夾中的全部文件
前言

對(duì)delete的解說(shuō)

那么問(wèn)題來(lái)了!!!
(②中的問(wèn)題,怎么刪除文件夾里所有文件,想必很多同學(xué)也和我一樣懵,)
別著急(往下看)
要用到的方法

(遞歸思想) 如果文件夾里面還有文件夾,就繼續(xù)往下找(可能不太官方,個(gè)人理解)
接下來(lái) 代碼展示
方法一:
package com.study;
import java.io.File;
import java.io.IOException;
/**
1. 應(yīng)用場(chǎng)景
2. delete刪除只能刪除空文件夾 和文件
3. 刪除指定文件夾
*/
public class Test1 {
public static void main(String[] args) throws IOException {
File f = new File("D://B");
deleteFile(f);//刪除完后并沒(méi)有刪除根目錄
f.delete();//刪除根目錄
if (!f.exists()){
//控制臺(tái)打印
System.out.println("刪除成功");
}
}
private static void deleteFile(File file) throws IOException {
/**
* File[] listFiles()
* 返回一個(gè)抽象路徑名數(shù)組,這些路徑名表示此抽象路徑名表示的目錄中的文件。
*/
File[] files = file.listFiles();
if (files!=null){//如果包含文件進(jìn)行刪除操作
for (int i = 0; i <files.length ; i++) {
if (files[i].isFile()){
//刪除子文件
files[i].delete();
}else if (files[i].isDirectory()){
//通過(guò)遞歸的方法找到子目錄的文件
deleteFile(files[i]);
}
files[i].delete();//刪除子目錄
}
}
}
}
方法二: 和上面一樣,把上面if代碼塊里的替換即可
if (files!=null){//如果包含文件進(jìn)行刪除操作
for (File f:files) {
//判斷遍歷出的文件是不是文件
if (f.isFile()){
//如果是則直接刪除
f.delete();
}else if (f.isDirectory()){//通過(guò)遞歸的方法找到文件夾里的文件
deleteFile(f);
}
f.delete();//刪除子目錄
}
}
思路
通過(guò)File類刪除文件夾全部?jī)?nèi)容:
只有當(dāng)目錄中全部文件刪除掉之后才能刪除目錄通過(guò)遞歸方式進(jìn)入子目錄最后刪除根目錄
總結(jié)
到此這篇關(guān)于Java如何通過(guò)File類方法刪除指定文件夾中的全部文件的文章就介紹到這了,更多相關(guān)Java File類方法刪除指定文件夾文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Jedis零基礎(chǔ)入門(mén)及操作Redis中的數(shù)據(jù)結(jié)構(gòu)詳解
Jedis 的 API 方法跟 Redis 的命令基本上完全一致,熟悉 Redis 的操作命令,自然就很容易使用 Jedis,因此官方也推薦 Java 使用 Jedis 來(lái)連接和操作 Redis2022-09-09
Mybatis-Plus批量添加或修改數(shù)據(jù)的3種方式總結(jié)
使用Mybatis-plus可以很方便的實(shí)現(xiàn)批量新增和批量修改,不僅比自己寫(xiě)foreach遍歷方便很多,而且性能也更加優(yōu)秀,下面這篇文章主要給大家介紹了關(guān)于Mybatis-Plus批量添加或修改數(shù)據(jù)的3種方式,需要的朋友可以參考下2023-05-05
Java中轉(zhuǎn)義字符反斜杠\的代替方法及repalceAll內(nèi)涵解析
這篇文章主要介紹了Java中轉(zhuǎn)義字符反斜杠\的代替方法及repalceAll內(nèi)涵解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
Springboot集成Proguard生成混淆jar包方式
本文介紹了兩種Java代碼混淆工具:ClassFinal和ProGuard,ClassFinal是一個(gè)字節(jié)碼加密工具,但需要額外的加密包,使用復(fù)雜,ProGuard是一款開(kāi)源的Java代碼混淆工具,可以有效地提高代碼的安全性,但對(duì)Spring框架的注解處理不夠完善2024-11-11
java實(shí)現(xiàn)消息隊(duì)列的兩種方式(小結(jié))
本文主要介紹了兩種java實(shí)現(xiàn)消息隊(duì)列的方式,利用Spring消息模板發(fā)送消息和Apache ActiveMQ官方實(shí)例發(fā)送消息,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12
Springboot四種事件監(jiān)聽(tīng)的實(shí)現(xiàn)方式詳解
這篇文章主要介紹了Springboot四種事件監(jiān)聽(tīng)的實(shí)現(xiàn)方式,事件監(jiān)聽(tīng)是一種機(jī)制,可以定義和觸發(fā)自定義的事件,以及在應(yīng)用程序中注冊(cè)監(jiān)聽(tīng)器來(lái)響應(yīng)這些事件,需要的朋友可以參考下2022-06-06

