关于搜索文件等方法:
String i="传入路径"; //创建一个路径(路径用反斜杠或者双斜杠)
File file=new File(i); //根据给定的路径创建File
file.getAbsolutePath(); //获取文件的绝对路径
file.getName(); //获取文件名
file.getParent(); //获取父目录名
file.isDirectory(); //判断是否为文件夹
file.isFile(); //判断是否为文件
关键在于递归方法的使用;
递归则是自己调自己,当然需要结束条件,不然更是死循环了。。
如: 使用递归循环输出大于或等于 0 到10之间的数。。
public static int triangle(int n) {//递归方法,循环调用
i=10; if (i >=0) { //判断条件 System.out.println(i);
triangle(i); //使用递归再次调用此方法} else { System.out.println(END); } }
在文件搜索器中,我们则需要调用递归算法来清楚的获得文件夹中包含的文件和文件夹;直到文件夹中不在包含文件夹。
如下为原代码:
private void processFile(File file){ File [] files=file.listFiles(); //定义一个文件夹数组 if(files==null||files.length<=0){ //如果数组为空或者长度为0是则结束方法 return; } for (int i = 0; i < files.length; i++) { // String path=files[i].getAbsolutePath(); // 获取文件的绝对路径 String str =files[i].getName(); //获得文件名 File file1=files[i]; if(file1.isFile()) //判断文件是否是文件 { if(str.indexOf(zi)>=0){ fileCount++; //如果是文件则加一 } }else { if(str.indexOf(zi)>=0){ DirCount++; //否则文件夹数目加一 } processFile(file1); //如果是文件夹在使用递归再次调用此方法 } } }