當前位置:首頁 » 文件管理 » java文件遞歸刪除文件夾

java文件遞歸刪除文件夾

發布時間: 2025-01-02 08:31:24

A. java怎麼實現掃描多個目錄中(包括子目錄)的指定文件,並且刪除它們

思路如下使用遞歸
public static void de(File f)
{ File [] b = f.listFiles();
//獲取包含file對象對應的子目錄或者文件
for(int i =0;i<b.length;i++}{
if(b[i].isFile()){
b[i].delete(); //判斷是否為文件如果是 就刪除 }
else{ de(b[i]);//否則重新遞歸到方法中 }
} f.delete();//最後刪除該目錄中所有文件後就刪除該目錄 }

B. java 中的file中怎麼刪除全部文件夾

可參考如下代碼,代碼說明寫代碼後注釋上

示例代碼如下:
importjava.io.File;
publicclassTest
{
publicstaticvoidmain(Stringargs[]){
Testt=newTest();
delFolder("c:/bb");
System.out.println("deleted");
}

//刪除文件夾
//paramfolderPath文件夾完整絕對路徑
publicstaticvoiddelFolder(StringfolderPath){
try{
delAllFile(folderPath);//刪除完裡面所有內容
StringfilePath=folderPath;
filePath=filePath.toString();
java.io.FilemyFilePath=newjava.io.File(filePath);
myFilePath.delete();//刪除空文件夾
}catch(Exceptione){
e.printStackTrace();
}
}

//刪除指定文件夾下所有文件
//parampath文件夾完整絕對路徑
publicstaticbooleandelAllFile(Stringpath){
booleanflag=false;
Filefile=newFile(path);
if(!file.exists()){
returnflag;
}
if(!file.isDirectory()){
returnflag;
}
String[]tempList=file.list();
Filetemp=null;
for(inti=0;i<tempList.length;i++){
if(path.endsWith(File.separator)){
temp=newFile(path+tempList[i]);
}else{
temp=newFile(path+File.separator+tempList[i]);
}
if(temp.isFile()){
temp.delete();
}
if(temp.isDirectory()){
delAllFile(path+"/"+tempList[i]);//先刪除文件夾裡面的文件
delFolder(path+"/"+tempList[i]);//再刪除空文件夾
flag=true;
}
}
returnflag;
}
}

C. JAVA遍歷一個文件夾中的所有文件---(遞歸)

public void traverseFolder2(String path) {

File file = new File(path);

if (file.exists()) {

File[] files = file.listFiles();

if (null == files || files.length == 0) {

System.out.println("文件夾是空的!");

return;

} else {

for (File file2 : files) {

if (file2.isDirectory()) {

System.out.println("文件夾:" + file2.getAbsolutePath());

traverseFolder2(file2.getAbsolutePath());

} else {

System.out.println("文件:" + file2.getAbsolutePath());

}

}

}

} else {

System.out.println("文件不存在!");

}

}

(3)java文件遞歸刪除文件夾擴展閱讀

public void traverseFolder1(String path) {

int fileNum = 0, folderNum = 0;

File file = new File(path);

if (file.exists()) {

LinkedList<File> list = new LinkedList<File>();

File[] files = file.listFiles();

for (File file2 : files) {

if (file2.isDirectory()) {

System.out.println("文件夾:" + file2.getAbsolutePath());

list.add(file2);

foldeNum++;

} else {

System.out.println("文件:" + file2.getAbsolutePath());

fileNum++;

}

}

File temp_file;

while (!list.isEmpty()) {

temp_file = list.removeFirst();


files = temp_file.listFiles();

for (File file2 : files) {

if (file2.isDirectory()) {

System.out.println("文件夾:" + file2.getAbsolutePath());

list.add(file2);

folderNum++;

} else {

System.out.println("文件:" + file2.getAbsolutePath());

fileNum++;

}

}

}

} else {

System.out.println("文件不存在!");

}

System.out.println("文件夾共有:" + folderNum + ",文件共有:" + fileNum);

}

D. java編程: 給定路徑,遞歸刪除不包含文件的文件夾

importjava.io.File;

publicclass${

publicstaticvoidmain(String[]args){

Stringpath="D:/test";

Filef=newFile(path);

remove(f);
}

privatestaticvoidremove(Filef){

if(!f.isDirectory()){
return;
}

File[]fs=f.listFiles();

if(fs.length==0){
f.delete();
return;
}

for(Filefile:fs){
remove(file);
}

if(f.listFiles().length==0){
f.delete();
}
}
}

E. java我刪除一個文件的時候如果文件刪除成功了,還需要判斷該文件所在的文件夾是否為空如果為空的話也要刪

// 正向遞歸刪除路徑下的文件
public void delFile(String path){
File file = new File(path);
if(file.exists()&&file.isFile()){
file.delete();
}else if(file.exists()&&file.isDirectory()){
File[] files = file.listFiles();
if(files!=null){
for(File f:files){
if(f!=null){
delFile(f.getAbsolutePath());
}
}
}
}
}
// 逆向遞歸刪除空目錄
public void delEmptyPath(String path){
File file = new File(path);
if(file.exists()&&file.isDirectory()){
File[] files = file.listFiles();
if(files!=null&&files.length>0)
return;
if(file.delete()){
delEmptyPath(file.getParent());
}
}
}
// 把上面兩個方法先後調用就能達到你的目的
public void delDirectories(String path){
File file = new File(path);

delFile(file.getAbsolutePath());
delEmptyPath(file.getParent());
}

F. 用java復制多級文件夾下的文件,只要文件不要文件夾。

在Java中,我們需要遞歸地遍歷多級文件夾下的文件。首先,創建一個File對象指向目標文件夾,例如"d:/A/」。然後定義一個方法ergodic,接收File對象和一個列表作為參數。此方法首先檢查當前目錄下的文件數組是否為空,如果為空則直接返回結果列表。

接著,遍歷當前目錄下的所有文件或子目錄。如果遇到的是目錄,則調用自身方法ergodic繼續遞歸查找子目錄。若遇到的是文件,則將文件的路徑添加到結果列表中。最後返回結果列表。

通過這種方法,你可以獲取到所有文件的路徑,這些路徑存儲在List中。如果你想直接將這些文件復制到另一個目錄,只需稍作修改。具體而言,將判斷條件改為文件時,使用流將文件內容寫入新目錄即可。

例如,你可以使用FileInputStream讀取文件內容,並使用FileOutputStream將內容寫入新目錄中的同名文件。這樣,你就能將指定文件夾下的所有文件復制到另一個目錄,而無需復制文件夾本身。

這種方法適用於處理復雜的文件結構,只需遞歸遍歷並處理每個文件即可。當然,你需要確保目標目錄存在,並有足夠的寫入許可權,否則可能會遇到異常。

熱點內容
wifi共享精靈源碼 發布:2025-02-01 02:40:15 瀏覽:970
java軟體怎麼安裝 發布:2025-02-01 02:40:09 瀏覽:546
河北稅務局電子密碼是什麼 發布:2025-02-01 02:40:07 瀏覽:832
檢查伺服器設置是什麼意思 發布:2025-02-01 02:31:26 瀏覽:182
神偷四第四章密碼是多少 發布:2025-02-01 02:07:29 瀏覽:12
qq登錄在哪個文件夾 發布:2025-02-01 01:57:59 瀏覽:624
如何加入安卓代理 發布:2025-02-01 01:51:40 瀏覽:2
我的世界手游伺服器刷鑽石教程 發布:2025-02-01 01:48:13 瀏覽:773
sqlifthen男女 發布:2025-02-01 01:44:59 瀏覽:690
幻靈和安卓哪個互通 發布:2025-02-01 01:43:33 瀏覽:648