用面向对象实现打印文件夹目录等相关操作

Posted lujunlong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用面向对象实现打印文件夹目录等相关操作相关的知识,希望对你有一定的参考价值。

package com.study;
/**
* 用面向对象方法实现打印文件夹目录、输出每个文件和文件夹大小
* 计算此文件夹下共有多少个子文件夹和文件
*/

import java.io.File;

public class DirLength {
private long len;
private String path;
private File src;
public int getFileLength() {
return fileLength;
}


public int getDirLength() {
return dirLength;
}


private int fileLength = 0;
private int dirLength = 0;

public DirLength(String path){
this.path = path;
this.src = new File(path);
}


private void testFile(File src,int length) {

if (src.isDirectory()) {
for (int i = 0; i < length; i++) {
System.out.print("-");
}
System.out.print(src.getName()+": ");
count(src);
System.out.println();


for(File s:src.listFiles()) {
testFile(s, length+1);
}

}else if (src.isFile()) {
for (int i = 0; i < length; i++) {
System.out.print("-");
}
System.out.print(src.getName()+": ");
count(src);
System.out.println();

}else {
return;
}

}

private void count(File src) {
long cou = 0;
if (src.isFile()) {
cou = cou+src.length();
this.fileLength++;
}else if (src.isDirectory()) {
for(File s :src.listFiles()) {
count(s);
this.dirLength++;
}
}else {
return;
}
System.out.print(cou);

}


public static void main(String[] args) {
DirLength aaa = new DirLength("C:\Users\Administrator\eclipse-workspace");
aaa.testFile(aaa.src,0);
System.out.printf("此文件夹包含%d个子文件夹,%d个文件",aaa.getDirLength(),aaa.getFileLength() );
}
}

以上是关于用面向对象实现打印文件夹目录等相关操作的主要内容,如果未能解决你的问题,请参考以下文章

面向对象基础----封装数据库操作类

使用Java实现面向对象编程——第八章 File IO

函数的定义及其返回值参数等相关操作

各种误解解释纸张打印机操作系统等误解相关

文件和IO流

文件和IO流