java源程序不能保存在c盘_C盘总是不知不觉就快满了,写个java小程序对文件夹做做监控...

突然发现C盘变的很满,用各种清理工具清理过一段又快满了。。看来快要重装系统了。。

所以决定用java写个小程序查看一下C盘下面所有文件夹的大小,每隔一段时间看一下,就可以发现是哪些文件夹占用了你的空间。

本文纯属自己练习,熟悉一下java io。代码如下:

import java.io.File;

import java.io.FileOutputStream;

import java.io.OutputStream;

import java.text.DateFormat;

import java.text.DecimalFormat;

import java.text.SimpleDateFormat;

import java.util.Date;

public class ReadC {

public static void main(String[] args) throws Exception {

writeFile();

}

private static void writeFile() throws Exception {

//由于直接写在txt中看起来不方便,所以弄成html的table看着比较直接

StringBuffer str = new StringBuffer("

File file = new File("C:" + File.separator);

File list[] = file.listFiles();

for (int i = 0; i < list.length; i++) {// 迭代输出查看;

String size = "

" + list[i].getName() + ""

+ formetFileSize(getFileSize(list[i])) + "

";

str.append(size);

System.out.println(list[i].getName() + " "

+ getFileSize(list[i]));

}

str.append("

");

//方便日志记录,把文件名弄成日期

String dateStr = new SimpleDateFormat("yyyyMMdd").format(new Date());

OutputStream os = new FileOutputStream(new File("d:" + File.separator

+ "C盘日志" + File.separator + dateStr + ".html"));

//写入html

os.write(str.toString().getBytes());

os.close();

}

// 通过递归获取文件(夹)的大小,返回的是字节数

private static long getFileSize(File file) {

// 如果是文件,直接返回文件大小

if (file.isFile())

return file.length();

//遍历文件夹

else {

long size = 0;

File fileList[] = file.listFiles();

if (fileList != null) {

for (int i = 0; i < fileList.length; i++) {

size = size + getFileSize(fileList[i]);

}

}

return size;

}

}

//将获取的字节进行格式化

private static String formetFileSize(long size) {

DecimalFormat df = new DecimalFormat("#.000");

String fileSizeString = "";

if (size == 0){

return "0B";

}else if (size < 1024) {

fileSizeString = df.format((double) size) + "B";

} else if (size < 1048576) {

fileSizeString = df.format((double) size / 1024) + "KB";

} else if (size < 1073741824) {

fileSizeString = df.format((double) size / 1048576) + "MB";

} else {

fileSizeString = df.format((double) size / 1073741824) + "GB";

}

return fileSizeString;

}

}

产生的效果如下,但是在我C盘只有15G左右的情况下用了50来秒。。。不知道有什么好方法可以快一点,第一次发博,欢迎指教。

$Recycle.Bin

12.830MB

autoexec.bat

24.000B

config.sys

10.000B

Documents and Settings

0B

hiberfil.sys

1.432GB

Intel

1.507MB

pagefile.sys

1.909GB

PerfLogs

0B

Program Files

2.003GB

ProgramData

700.322MB

Recovery

185.260MB

System Volume Information

0B

TopDeskDownload

0B

Users

1.953GB

win7

1.306MB

Windows

9.088GB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值