您的位置:首页 > 其它

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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐