美文网首页
File-操作列出目录下所有文件包括子目录里的

File-操作列出目录下所有文件包括子目录里的

作者: Liu积土成山 | 来源:发表于2020-01-16 14:35 被阅读0次
    /**
     * File只能用于表示文件(目录)的信息(名称,大小等),不能用于文件内容的访问)
     */
    public class EncodeFileDemo {
        public static void main(String[] args) {
            fileShowCreate();
        }
    
        private static void fileShowCreate() {
            // 创建了个文件目录,就是文件夹
            File file = new File("/Users/liuyan/IdeaProjects/BiliFengJia/src/a");
            if (!file.exists()) {
                try {
                    // 创建文件
    //                file.createNewFile();
                    // 如果文件夹不存在,创建文件夹,一级目录
                    file.mkdir();
                    // 多级目录
    //                file.mkdirs()
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            // 是否是一个目录 没后缀名的就是目录 如果是目录或者目录不存在返回false
            System.out.println(file.isDirectory());
            // 是否是一个文件 有后缀名的就是文件
            System.out.println(file.isFile());
            // 打印的是文件的目录 /Users/liuyan/IdeaProjects/BiliFengJia/src/a
            System.out.println(file.getAbsolutePath());
            // 打印的是a这个目录的名,如果是文件就打印a文件的名字
            System.out.println(file.getName());
            // 该文件/文件夹的父目录 /Users/liuyan/IdeaProjects/BiliFengJia/src
            System.out.println(file.getParent());
    
            try {
                //列出目录下所有,包括子目录里的文件
                FileUtils.listDirectory(new File("/Users/liuyan"));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    --------------------------------------------------*********************------------------------------------------
    import java.io.File;
    import java.io.IOException;
    
    /**
     * 列出file的一些常用操作,比如过滤,遍历等操作
     */
    public class FileUtils {
        /*列出指定目录下(包括其子目录)的所有文件)*/
        public static void listDirectory(File dir) throws IOException {
            if (!dir.exists()) {
                throw new IllegalArgumentException("目录:" + "dir" + "不存在");
            }
            if (!dir.isDirectory()) {
                throw new IllegalArgumentException(dir + "不是目录");
            }
            // dir.list(); 返回的是字符串数组,直接子的名称,不包含子目录下的内容
    //        String[] fileNames = dir.list();
    //        for (String string:fileNames) {
    //            System.out.println(string);
    //        }
            // 列出目录下所有内容,包括子目录里的用递归
            // 如果要遍历子目录下的内容就需要构造成File对象做递归操作,file提供了直接返回file对象的api
            File[] files = dir.listFiles();// 返回的是直接子目录(文件)的抽象
            if(files!=null && files.length>0){
                for (File file : files) {
    //                System.out.println(f.getAbsolutePath());
                    if(file.isDirectory()){
                       listDirectory(file);
                    }else {
                        System.out.println(file);
                    }
                }
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:File-操作列出目录下所有文件包括子目录里的

          本文链接:https://www.haomeiwen.com/subject/pemfzctx.html