美文网首页
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