io中的文件夹创立以及遍历和递归打印所有文件及文件夹的子目录以及统计文件夹的大小
2019-08-15 18:57
375 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44007988/article/details/99639338
关于io中的文件夹创立以及遍历
package cn.com.io; import java.io.File; public class TestDirDemo { public static void main(String[] args) { // mkdir(): 上级目录存在 创建才能成功, 不存在的话 就创建失败 File file = new File("F:/java code/io_Studey/abc/test"); // boolean flag = file.mkdir(); // System.out.println(flag); boolean flag = file.mkdirs(); System.out.println(flag); System.out.println("--------"); file = new File("F:/java code/io_Studey/abc/test0"); flag = file.mkdir(); System.out.println(flag); //list() 返回下一级名称 System.out.println("-----"); file = new File("F:/java code/io_Studey"); String[] str = file.list(); for (String s :str) { System.out.println(s); } //listFiles() 返回下一级的 (对象) System.out.println("----------"); File[] obj = file.listFiles(); for (File f: obj) { System.out.println(f); } //所有的盘符 System.out.println("-------------"); File[] objs = file.listRoots(); for (File ff: objs) { System.out.println(ff); } } }
递归打印所有文件及文件夹的子目录以及统计文件夹的大小
package cn.com.io; import java.io.File; public class TestDirDemo1 { public static void main(String[] args) { File file = new File("F:/java code/io_Studey"); //printName(file,0); printFileSize(file); System.out.println(len); } //递归打印所有文件及文件夹的子目录 public static void printName(File file,int i) { for (int j = 0; j <i ; j++) { System.out.print("-"); } System.out.println(file.getName()); if (!file.exists() || file == null) { return; }else if(file.isDirectory()) { //listFiles() 返回下一级对象 for ( File f:file.listFiles()) { printName(f,i+1); } } } //统计文件夹的大小 private static long len = 0; public static void printFileSize(File file) { //获取大小 if (file.exists() && file != null) { if (file.isFile()) { len += file.length(); }else { for (File ff:file.listFiles()) { printFileSize(ff); } } } } }
面向对象实现统计文件的大小
package cn.com.io; import java.io.File; public class TestDirDemo2 { //文件的大小 private long len; //文件的路径 private String path; //源 private File file; //文件的个数 private int fileSize; //文件夹的个数 private int dirSize; public TestDirDemo2(String path) { this.path = path; this.file = new File(path); printSize(this.file); } private void printSize(File file) { if (file.exists() && file != null) { if (file.isFile()) { this.fileSize++; len += file.length(); }else { this.dirSize++; for (File f:file.listFiles()) { printSize(f); } } } } public long getLen() { return len; } public void setLen(long len) { this.len = len; } public int getFileSize() { return fileSize; } public void setFileSize(int fileSize) { this.fileSize = fileSize; } public int getDirSize() { return dirSize; } public void setDirSize(int dirSize) { this.dirSize = dirSize; } public static void main(String[] args) { TestDirDemo2 td =new TestDirDemo2("F:/java code/io_Studey"); System.out.println(td.getLen()+"---->"+td.fileSize+"---->"+td.dirSize); TestDirDemo2 td1 =new TestDirDemo2("F:/java code/io_Studey/src"); System.out.println(td1.getLen()+"---->"+td1.fileSize+"---->"+td1.dirSize); } }
相关文章推荐
- 非递归方式遍历文件夹,取得所有子目录和文件的文件名和大小
- 利用递归遍历文件夹下所有文件以及子文件夹
- 【File类】遍历文件夹下的所有文件包括所有子目录,把该文件夹下的所有文件的文件路径名打印出来...
- Python:递归遍历目录,统计目录大小,并以列表的形式返回所有py文件
- 使用递归打印当前目录以及当前目录的所有子目录下指定文件类型的绝对路径
- VC++6.0遍历文件夹及子目录并打印文件大小属性
- Java递归遍历删除拷贝文件以及获取文件夹大小
- JavaIO统计一个文件夹,文件,文件夹,所有字节的大小
- c# 遍历文件夹下所有的子文件夹以及文件 递归
- 遍历某个文件夹(目录)下的所有文件 以及获取文件夹大小
- Linux高级编程——实验六 编写程序完成以下功能: 1.递归遍历/home目录,打印出所有文件和子目录名称及节点号。 2.判断文件类型,如果是子目录,继续进行递归遍历,直到遍历完所有子目录为止。
- 递归练习4 从键盘接收一个文件夹路径,把文件夹中的所有文件以及文件夹的名字按层级打印
- 编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。
- java/android 统计文件夹大小及删除文件夹下所有文件和路径
- 统计当前目录下的所有文件目录大小,不显示子目录与子文件
- asp.net遍历目录文件夹和子目录所有文件
- 递归遍历一个文件夹下面的所有文件
- JAVA实现遍历文件夹下的所有文件(递归调用和非递归调用)
- 递归方式遍历文件夹下所有子文件夹和文件
- 递归遍历某文件夹下所有文件的算法