文件夹的创建和遍历--IO流--Java学习笔记

API说明
mkdir()创建目录(父级目录不存在时失败)
mkdirs()创建目录(父级目录不存在时会一同创建)
list()下级名称
listFiles()下级File
listRoots()根路径

文件夹的创建

E盘中的demo文件夹

创建dir文件夹

File dir = new File("E:/deom/dir");
boolean flag = dir.mkdir();  //创建成功返回true
System.out.println(flag);

创建成功
使用mkdirs()创建结果一样

创建dir文件夹并在dir中创建test文件夹

File dir = new File("E:/deom/dir/test");
boolean flag = dir.mkdirs();  //创建成功返回true
System.out.println(flag);

创建成功
使用mkdir()则会返回false
创建失败
可以看到文件夹并没有被创建
而且控制台打印出的false

列出下一级目录

untitled3下级目录
获取untitled3下级目录的名称

用list()

File dir = new File("E:/untitled3");

String[] subNames = dir.list();  //subNames用来存饭下级文件夹名称
for (String s : subNames) {  //for循环输出subNames的每一项
    System.out.println(s);
}

输出结果

用listFile()

File dir = new File("E:/untitled3");

File[] subFiles = dir.listFiles();  //subFiles用来存饭下级文件夹名称
for (File s : subFiles) {  //for循环输出subFiles的每一项
    System.out.println(s);
}

输出结果

列出所有盘符

listRoots()列出所有盘符

File dir = new File("E:/untitled3");
File[] roots = dir.listRoots();
for (File r : roots) {
    System.out.println(r.getAbsolutePath());
}

输出结果

遍历一个文件夹下所有子目录

public static void main(String[] args) {
    File src = new File("E:\\untitled3");
    printName(src,0);
}

public static void printName(File src,int deep) {
    for (int i = 0; i < deep; i++) {
        System.out.print("-");  //方便看出层次感
    }

    //打印名称
    System.out.println(src.getName());

    //判断是否存在下一级
    if (src == null || !src.exists()) {
        return;
    } else if (src.isDirectory()) { //如果是目录则遍历下一级目录
        for (File s:src.listFiles()) {
            printName(s,deep+1);
        }
    }
}

遍历结果

获取文件夹的大小

public static void main(String[] args) {
    File src = new File("E:\\untitled3");
    count(src);
    System.out.println(len);
}

private static long len = 0;

public static void count(File src) {
    if (src == null || src.exists()) {
        if (src.isFile()) {
            len += src.length();
        } else {
            for (File s : src.listFiles()) {
                count(s);
            }
        }
    }
}

文件夹的大小

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值