首页 > 编程知识 正文

java文件操作和递归(java递归生成文件夹)

时间:2023-12-24 01:06:47 阅读:319611 作者:HKTR

本文目录一览:

关于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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。