递归函数,打印指定文件目录下的文件夹和文件名,各子文件夹下也要打印出来

来源:互联网 发布:用友软件价格 编辑:程序博客网 时间:2024/04/30 06:33
import java.io.*;/**   给定一个文件路径,打印以下内容:   如果路径指向一个文件夹则打印该文件夹下所有的子文件夹和文件(包括子文件夹下的文件夹和文件)   如果路径指向一个文件则打印该文件名   如果路径指向不存在的文件则打印:”(NO FILE)” *方法创建思路:1.在一个类中创建一个方法:*    第一、得到文件的抽象路径*    第二、判断路径是否准确,否则打印 NO FILE*    第三、路径正确,判断是否为文件,如果为文件,则打印文件名*    第四、路径不是文件名则判断是否为文件夹名称,如果为文件夹,调用递归方法打印文件夹中所有文件夹及文件*/public class ListFileRecursion{    public static void listFile(String filePath){        try{        //1.得到文件的抽象路径        File file = new File(filePath);        //2.判断路径是否准确    if(file.exists()){        //3.如果路径指向一个文件则打印该文件名         if(file.isFile()){            System.out.println(file.getName());            //4.如果路径指向一个文件夹则打印该文件夹下所有的子文件夹和文件            }else if(file.isDirectory()){            System.out.println(file.toString());            File[] fileArray = file.listFiles();            //打印文件夹下文件数量            //System.out.println(" includes "+ fileArray.length +" files/folders directly.");                //递归打印文件夹下所有文件                for(File subFile : fileArray){                listFile(subFile.toString());                }            }        }else if(!file.isDirectory()){        //如果路径指向一个文件,则打印文件名        System.out.println(file.toString());        }else{        //如果路径指向不存在的文件则打印:”(NO FILE)”        System.out.println("NO FILE");        }                    }catch(Exception e){        e.printStackTrace();        }   }      public static void main(String args[]){   //在路径中如果用单斜杠‘\’,java中会认为是转义字符,所以在路径上全部加双斜杠‘\\’。       listFile("C:\\oracle");          }}

 

 

原文地址:http://chwshuang.iteye.com/blog/846141

 

 

 

...

原创粉丝点击