JAVA實現(xiàn)將磁盤中所有空文件夾進行刪除的代碼
更新時間:2017年06月18日 14:59:06 投稿:mdxy-dxy
這篇文章主要介紹了JAVA實現(xiàn)將磁盤中所有空文件夾進行刪除的代碼,需要的朋友可以參考下
實現(xiàn)代碼一、
import java.io.File;
import java.io.*;
public class DelNullDir {
public void ShowDir(File f){
for (File f1:f.listFiles()){
if(f1.isDirectory()){
ShowDir(f1);
//一直遞歸到最后的目錄
if(f1.listFiles().length==0){
//如果是文件夾里面沒有文件證明是空文件,進行刪除
f1.delete();
}
}
}
}
/**
*
* 把磁盤中所有空的文件夾進行刪除
*/
public static void main(String[] args) {
File f = new File("F:\\360CloudUI\\");
new DelNullDir().ShowDir(f);
}
}
實現(xiàn)代碼二、
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Date;
/**
* Description:遞歸方式,掃描并刪除磁盤中的空文件夾
*(C盤中的一些空文件夾是系統(tǒng)文件夾,刪除多次后空文件夾數(shù)量不變,則停止此程序)
* */
public class DelEmptyFolders {
//空文件夾的絕對路徑
private static StringBuffer paths;
//本次掃描的空文件夾的數(shù)量
private static int cnt;
public static void main(String[] args) {
boolean flag = true;
do{
cnt = 0;
paths = new StringBuffer();
long start = new Date().getTime();
System.out.println("正在掃描......");
//要掃描的磁盤
File disk = new File("C:/");
//日志文件的位置
File log = new File("D:/scanLog_C.txt");
try {
//掃描磁盤
scanEmptyFolders(disk);
//空文件夾數(shù)大于0時,將文件夾的絕對路徑記錄到日志中并再掃描一次;否則停止掃描
if(cnt > 0){
fileWrite(paths.toString(), log);
}else{
flag = false;
}
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
long end = new Date().getTime();
System.out.println("本次掃描完畢,耗時:"+(end-start)/1000+" 秒,共刪除:"+cnt+" 個空文件夾!\n");
}while(flag);
}
/**
* TODO:遞歸掃描空文件夾
* @throws UnsupportedEncodingException
* */
private static void scanEmptyFolders(File file) throws UnsupportedEncodingException{
if(file != null && file.isDirectory()){
File[] files = file.listFiles();
//非空文件夾
if(files != null){
if(files.length > 0){
for (File temp : files) {
scanEmptyFolders(temp);
}
}else{
System.out.println(file.getAbsolutePath());
//記錄日志
paths.append(new String((file.getAbsolutePath()+"\r\n").getBytes(),"UTF-8"));
cnt++;
//刪除空文件夾
file.delete();
}
}
}
}
/**
* TODO:將字符串寫入文本文件
* @throws IOException
* */
private static void fileWrite(String info,File file) throws IOException{
FileOutputStream fos = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(fos);
bos.write(info.getBytes());
bos.flush();
bos.close();
fos.close();
}
}
以上就是JAVA刪除空文件夾的實現(xiàn)代碼,需要的朋友可以參考一下。
相關(guān)文章
springboot利用aspose預(yù)覽office文件的實現(xiàn)過程
這篇文章主要給大家介紹了關(guān)于springboot利用aspose預(yù)覽office文件的相關(guān)資料,文中通過示例代碼以及圖文介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考價值,需要的朋友可以參考下2021-06-06
Java實戰(zhàn)項目練習(xí)之球館在線預(yù)約系統(tǒng)的實現(xiàn)
理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SpringBoot+maven+freemark+Mysql實現(xiàn)一個球館在線預(yù)約系統(tǒng),大家可以在過程中查缺補漏,提升水平2022-01-01
SpringBoot的配置文件application.yml及加載順序詳解
這篇文章主要介紹了SpringBoot的配置文件application.yml及加載順序,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07
Java發(fā)送http請求調(diào)用第三方接口獲取token方式
這篇文章主要介紹了Java發(fā)送http請求調(diào)用第三方接口獲取token方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07

