File遍历目录

来源:互联网 发布:javascript案例教程 编辑:程序博客网 时间:2024/05/17 03:52

File的过滤,遍历等操作

列出指定目录下的(包括子目录)的所有文件

File file = new File();

exists() 方法用于判断文件或目录是否存在

isDirectory()方法判断File类的对象是否是目录

throw new IllegalArgumentException();抛出异常

String[] filenames = file.list() //返回的是字符串数组,列出当前目录下的所有子目录和文件,不包含子目录下的内容
//递归
for(String string : filenames){//将filenames数组中的值,循环赋值给string,直到filenames为空时,结束循环
System.out.println(string);
}

//如果要遍历目录下的内容就需要构造成File对象做递归操作,File提供了直接返回File对象的API
File[] files = file.listFiles(); //返回的是直接子目录(文件)的抽象

//递归,遍历出该目录下所有文件信息,包括子目录下的文件
for(File f :files){
if(f.isDirectory){
//递归遍历该目录下的子目录的信息
listDirectory(file);
}
else{
System.out.pritln(file);
}
}

贴出代码

public class FileUtils {    //列出指定目录下,包括子目录下的所有文件    public static void listDirectory(File dir)throws IOException{        //如果目录不存在,抛出异常给提示        if(!dir.exists()){            throw new IllegalArgumentException("目录"+dir+"不存在");            }        //如果dir不是目录,抛出异常给提示        if(!dir.isDirectory()){            throw new IllegalArgumentException(dir+"不是目录");        }        String[]filename=dir.list();//返回的是字符串数组,子目录名称,不包含子目录下的内容        for (String filedir : filename) {            System.out.println(dir+"\\"+filedir);        }        //如果要遍历子目录下的内容,就需要遍历file对象做递归操作        //file提供了直接返回file对象的api        File[] file=dir.listFiles();//返回子目录(文件)的对象        //如果子目录长度大于0并且不为空,就代表存在        if(file.length>0&&file!=null){            //遍历打印出子目录        for (File file2 : file) {            if(file2.isDirectory()){//拿到目录,false递归,                //递归                listDirectory(file2);                }else{                    System.out.println(file);                }        }        }    } }
public class FileDemo {   public static void main(String[] args) {      try {        FileUtils.listDirectory(new File("/Users/ldq/Documents/Demotest"));    } catch (IOException e) {        // TODO Auto-generated catch block        e.printStackTrace();    }}}
0 0
原创粉丝点击