现在要求输出一个给定目录中的全部文件的路径。 本程序肯定只能依靠递归的操作完成,因为在一个给定的路径下有可能还是文件夹,那么如果是文件夹的话则肯定要继续列出,重复判断。 递归:程序调用自身的编程技巧 递归就是在方法里调用自身; 在使用递归时,必须有一个明确的递归结束条件,称为递归出口。 练习:列出文件夹下所有文件(包含子文件夹内) package july7file; //利用递归遍历输出 import java.io.File; public class Demo2 { public static void main(String[] args) { File f = new File("D:/V5"); mylist(f); } public static void mylist(File f) { System.out.println(f);// 先输出一下,因为不能确定接受来的文件是否是文件夹! if (f.isDirectory()) { File[] file = f.listFiles(); for (File file2 : file) { mylist(file2); } } } } 练习:删除一个目录(注意:要删除目录必须删除目录下的文件和子目录) package july7file; import java.io.File; public class Demo11 { public static void main(String[] args) { File f = new File("D:/V5"); deleter(f); System.out.println("删除成功 !"); } public static void deleter(File f){//程序简陋,就没有判断空引用! if(f.isFile()){ f.delete(); }else if(f.isDirectory()){ File []file = f.listFiles(); for (File file2 : file) { deleter(file2);//调用自身,递归! file2.delete();//删除子文件夹(内部没有文件的时候可以删除),如果这里写上f.delete();那么V5这个文件夹也没有了 } } } } |