package pxyhomeworkday09;
import java.io.File;
public class try0002 {
public static void main(String[] args) {
File f=new File("G:\\avi");
int count =0;
System.out.println(method2(f));
}
public static int method2(File file){
File[] files=file.listFiles();
int count1=0;
int b=0;
int c=0;
for (File f2 : files) {
if(f2.isFile()){
if(f2.getName().endsWith(".txt")){
System.out.println(f2.getName());
count1++;
}
}else if(f2.isDirectory()){
b=method2(f2);
c=c+b;//关键!累加,否则当一个文件夹下有多个文件夹的时候,程序只返回一个文件夹的返回值;
}
}return count1+c;
}
}
//总结:这个方法有一个返回值,是这个方法得到的txt文件的个数,这里的c包含了count1(当前层下的文件数)和累加的b(递归方法中方法的返回值)
//如果去掉24行,并把返回值改为count+b,那么在一个文件夹下有多个文件夹的时候,程序只返回一个文件夹的返回值,不同的递归方法返回值会被覆盖。
public static void main(String[] args) {
File f=new File("G:\\avi");
int count =0;
System.out.println(method2(f));
}
public static int method2(File file){
File[] files=file.listFiles();
int count1=0;
int b=0;
int c=0;
for (File f2 : files) {
if(f2.isFile()){
if(f2.getName().endsWith(".txt")){
System.out.println(f2.getName());
count1++;
}
}else if(f2.isDirectory()){
b=method2(f2);
c=c+b;//关键!累加,否则当一个文件夹下有多个文件夹的时候,程序只返回一个文件夹的返回值;
}
}return count1+c;
}
}
//总结:这个方法有一个返回值,是这个方法得到的txt文件的个数,这里的c包含了count1(当前层下的文件数)和累加的b(递归方法中方法的返回值)
//如果去掉24行,并把返回值改为count+b,那么在一个文件夹下有多个文件夹的时候,程序只返回一个文件夹的返回值,不同的递归方法返回值会被覆盖。