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

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() );
}
}

原文地址:https://www.cnblogs.com/LuJunlong/p/11663687.html

时间: 2024-10-11 08:58:19

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

Linux下文件和目录的相关操作

文件和目录的操作命令,按以下思路进行整理,感觉更便于记忆和使用 1.创建一个二进制文件 touch f1 2.向文件中写入数据 echo "hello" >> f1 echo "world" >> f1 (world 会追加到hello后面) echo "test" > f1     (test 会覆盖刚写入的hello world) 3.给文件创建链接 ln f1 f2 (给f1创建一个硬链接文件f2) ln -s

打印文件夹中所有dll输出表中函数名称

今天逆向破解firefox浏览器中保存的账号及密码,因为firefox对账号的信息不断的提高安全性,所以之前破解中需要用到的一个导出函数不知被封装到那个dll中了,但firefox安装目录下又有许多的dll,一个一个的使用loadPe工具去查找太麻烦了,于是就编写了一个小程序去遍历文件夹下所有的dll的导出表中的函数名称并打印出来. 头文件: #include <Windows.h> #include <stdio.h> #include <imagehlp.h> #p

Mac 中显示资源库(Library)文件夹目录的几种方法

Mac 中显示资源库(Library)文件夹目录的几种方法 Mac中Library目录在10.6.7系统之后默认隐藏的,要想找到此文件夹有如下几种方法: 1. 用命令可以使其显示: 在终端中执行命令: chflags nohidden ~/Library 可显示资源库文件夹 如想隐藏,可以在终端中执行命令: chflags hidden ~/Library 隐藏 2. 在Finder菜单中的偏好设置中设置 在Finder菜单中的偏好设置中选择边栏,勾选上设备中的硬盘. 再打开Finder,Fin

高效系列:bat生成文件夹目录 & 折腾exe及icon配合

有时候我们需要新生成一套文件夹目录,就比如项目管理目录 大概的清单如下: ├─01.项目管理 │  ├─01.立项文档 │  ├─02.策划文档 │  ├─03.管理监控 │  ├─04.配置管理 │  ├─05.质量保证 │  ├─06.验收文档 │  ├─07.项目报告 │  ├─08.评审报告 │  ├─09.变更管理 │  ├─10.结项文档 │  ├─11.会议记录 │  └─12.其它文档 ├─02.需求文档 │  ├─01.用户需求说明书 │  └─02.需求规格说明书 ├─03.

linux系统下修改文件夹目录权限

linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何修改Linux文件-文件夹权限.以主文件夹下的一个名为cc的文件夹为例. 下面一步一步介绍如何修改权限: 1.打开终端.输入su(没 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何修改Linux文件

Node.js 文件夹目录结构创建

第一次接触NodeJS的文件系统就被它的异步的响应给搞晕了,后来发现NodeJS判断文件夹是否存在和创建文件夹是还有同步方法的,但是还是想尝试使用异步的方法去实现. 使用的方法:fs.exists(path, callback);fs.mkdir(path, [mode], callback); 实现文件夹目录结构的创建代码实现如下: //创建文件夹 function mkdir(pos, dirArray,_callback){ var len = dirArray.length; conso

VC中文件(夹)目录与路径操作原理与代码实现

***********************************************声明************************************************************************************* 原创作品,出自 "晓风残月xj" 博客,欢迎转载,转载时请务必注明出处(http://blog.csdn.net/xiaofengcanyuexj). 由于各种原因,可能存在诸多不足,欢迎斧正! ************

在使用Eclipse时出现的两个问题:“搞定 NiosII 工程文件夹目录路径改变”与“Connected system ID hash not found on target at expected base address”

问题一: “搞定 NiosII 工程文件夹目录路径改变”的过程中,按照<NiosII的奇幻漂流-v2.0.pdf>这本书附录一章<20.2 四步搞定 NiosII 工程文件夹目录路径改变>所说的方法进行问题解决的时候,总是会出现一些小问题,例如有一个问题“xxx.sopcinfo could not be found.”最后只能删掉工程,重建project,copy源码.虽然最后能够解决路径问题,但花费精力过多,无数次的删除原工程下的project,无数次的自己重建,虽然也能解决问

Google Drive 和 Dropbox 同步同一个文件夹目录

 Dropbox 也是非常棒的同步工具,例如先进的增量上传或者更开放的 API 等.可是为什么不曾想过把 Google Drive 和 Dropbox 同时使用呢,我是说,让这两者同时云同步同一个文件夹目录?这样我既可以使用前者强大的协作编辑功能,也能使用后者更丰富的 API 接口.可我只在网上看到一个同步另一个子目录的形式,这很不好.于是,在我自己的一番尝试后,我成功地达到了目的,下面是我的方法. 指引 / 跳至[收缩] 1 退出并清理内容 2 下载并安装 Dropbox 3 下载并安装 Go