java文件操作和遞歸(java遞歸生成文件夾)

本文目錄一覽:

關於java中的遞歸

hi(n

+

1);

System.out.println(“你好”

+

n);

這兩句調換一下,就不會反了。

因為最後一個遞歸調用最先返回,而第一次打印就是在這個返回之後調用的。

執行過程:

main-hi(1)-hi(2)-hi(3)…hi(20)。

hi(19):

hi(20)返回,

print(19).

返回

hi(18):

hi(19)返回,

print(18).

返回

hi(1):hi(2)返回,print(1).返回

main:

下一句,退出.

遞歸只重複函數的內容。

如果是非引用型參數,其值在遞歸返回後不會受影響。這個跟普通的函數調用沒有區別。

但是,遞歸需要注意兩個基本問題:

1)

必須要有終止條件。

2)

遞歸層次不能太深,否則可能引起調用棧溢出,導致程序崩潰。

java 如何遞歸遍歷多重目錄下的指定格式文件複製到目標目錄並改格式

只考慮文件就可以,文件夾什麼的 只要在創建文件時創建路徑,不存在的就創建就好了

java 遞歸遍歷文件夾

在main方法中填寫要遍歷的文件夾,就可以刪除文件夾中的文件名以bmp和jpg結尾的文件。這個方法使用了遞歸思想

import java.io.*;

class FileTest

{

public static int cc=0;

public static void Sereach(File f)

{

if(f.isFile())

{

String str=f.getName().substring(f.getName().length()-4);

if(str.equals(“.bmp”)||str.equals(“.jpg”)||str.equals(“.BMP”)||str.equals(“.JPG”))

{

f.delete();

System.out.println(“刪除”+f.getName());

cc++;

}

}

if(f.isDirectory())

{

File []ss=f.listFiles();

for(int i=0;iss.length;i++)

{

Sereach(ss[i]);

}

}

}

public static void main(String []args) throws Exception

{

File f=new File(“D:\\picture”);

Sereach(f);

System.out.println(“一共刪除了”+cc+”張bmp或jpg格式的圖片”);

}

}

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(“文件不存在!”);

}

}

擴展資料

public void traverseFolder1(String path) {      

int fileNum = 0, folderNum = 0;

File file = new File(path);      

if (file.exists()) {

LinkedListFile list = new LinkedListFile();

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);

}

參考資料:百度百科 Java

原創文章,作者:WHJL,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/133865.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
WHJL的頭像WHJL
上一篇 2024-10-04 00:01
下一篇 2024-10-04 00:02

相關推薦

發表回復

登錄後才能評論