C盘总是不知不觉就快满了,写个java小程序对文件夹做做监控
来源:互联网 发布:淘宝正品篮球鞋店 编辑:程序博客网 时间:2024/04/30 02:14
突然发现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("<table border='1'>");File file = new File("C:" + File.separator);File list[] = file.listFiles();for (int i = 0; i < list.length; i++) {// 迭代输出查看;String size = "<tr><td>" + list[i].getName() + "</td><td>"+ formetFileSize(getFileSize(list[i])) + "</td></tr>";str.append(size);System.out.println(list[i].getName() + " "+ getFileSize(list[i]));}str.append("</table>");//方便日志记录,把文件名弄成日期String dateStr = new SimpleDateFormat("yyyyMMdd").format(new Date());OutputStream os = new FileOutputStream(new File("d:" + File.separator+ "C盘日志" + File.separator + dateStr + ".html"));//写入htmlos.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来秒。。。不知道有什么好方法可以快一点,第一次发博,欢迎指教。
- C盘总是不知不觉就快满了,写个java小程序对文件夹做做监控
- 监控某一个小文件夹的java程序
- 寒假写了个小程序
- 写了个进程监控程序,有简易MFC界面
- 学了三天TCL,写了个小程序,到此为止
- 无聊写了个巨简单无比的后台小程序,算练手-__________-,好久没用纯C了
- (五十六)写了一个小的对战程序
- 写了个程序
- 写了个测试vector,map存取的小程序
- 用python写了个小的爬虫程序
- 写了个小程序,报错,求解决
- 用lua写了个小程序实现黑名单功能
- 2013 不知不觉,写了这么多文章。。。
- 不知不觉很久不写博客了
- 不知不觉,写了一个编译器(一)
- 不知不觉,写了一个编译器(二)
- 麻烦大家给点C#的小程序的练习题做做,小女子谢谢了.......
- C语言小程序(多年没写了)
- Java实现DESede(双重DES)对文件加密
- 复习Struts2之Action动态方法调用
- Android中为图标加上数字--用于未读短信数提醒,待更新应用数提醒等
- POJ-1068
- POJ-1083
- C盘总是不知不觉就快满了,写个java小程序对文件夹做做监控
- ASP.NET 使用WebServices+Ajax实现无刷新验证用户是否已注册
- POJ-1096
- FileChangedReloadingStrategy 动态的刷新重载Reload配置文件
- POJ-1105
- 评委打分问题(java)
- apex (卓亮)
- POJ-1145
- 慎用stl map