【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个文件占用了内存太大了。
使用例子如下,用JAVA 运行Sort
1, 输入你要排序的文件路径 , 如 例子是对H:\下的文件和它所有子文件夹下的文件进行排序
2, 输入需要进行排序显示的最新大小,如 例子是对10M 大小 以上的文件进行排序
3,从大到小排序后按
文件路径\文件名-------大小 KB--------创建日期进行显示(yyyyMMdd)
格式进行显示,。
这样你就可以把太大的文件删除了,清理出空间
D:\hjbsSorft\work\20140207\SortSize\bin>java com.he.jinbin.Sort
输入需要排序文件地址:H:\
输入需要排序文件大小(单位M):10
运行中,请稍等...
从大到小文件排序为:
H:\.android_secure\com.sg.android.fish-1.asec-------36224000 KB--------20130525
H:\BaiduMap\vmp\h\quanguogailue.dat-------27616013 KB--------20130512
H:\Download\RedGame_Android_2017-2013-11-06_18-54-27-CI-20.apk-------26563096 KB--------20131111
H:\ugame\ugameSDK\downloads\6F9757F4442DD99FC89FA387C80405D2.apk-------26305964KB--------20131025
H:\Download\com.tencent.mobileqq_60.apk-------25417880 KB--------20130714
H:\Android\data\com.android.gallery3d\cache\imgcache.0-------22070789 KB--------20140210
H:\book\2014\异世灵武天下\异世灵武天下.txt-------20279247 KB--------20131114
H:\book\深入java虚拟机.pdf-------19936351 KB--------20130303
H:\book\2014\官途\官途.txt-------19668417 KB--------20130907
H:\book\金庸世界里的道士.txt-------19004109 KB--------20130102
H:\wandoujia\patch\快播_1390061188726.patch-------18649129 KB--------20140119
H:\BaiduMap\vmp\h\guangzhou_257.dat-------16645639 KB--------20140120
H:\book\战皇.txt-------15588332 KB--------20121215
H:\Download\com.tencent.mobileqq_52.apk-------15128435 KB--------20130521
H:\book\2014\超级农民\超级农民.txt-------13913630 KB--------20130807
H:\book\2014\唐寅在异界\唐寅在异界.txt-------13328290 KB--------20130726
H:\book\2014\末日蟑螂\末日蟑螂.txt-------13177834 KB--------20131129
H:\book\2014\易筋经\易筋经.txt-------12995888 KB--------20130715
H:\book\2014\抗战之红色警戒\抗战之红色警戒.txt-------12828979 KB--------20130928
H:\book\new\道.txt-------12445787 KB--------20130326
H:\book\2014\1895淘金国度\1895淘金国度.txt-------12391071 KB--------20140104
H:\book\2014\权臣\权臣.txt-------11949796 KB--------20130726
H:\install\360weishi_167.apk-------11342128 KB--------20131009
H:\book\2013.9.19\斗破苍穹.txt-------10776149 KB--------20130103
H:\install\baiduditu.apk-------10685159 KB--------20130511
H:\DBOP\Resources\cfg\db.cfg-------10647552 KB--------20130520
windows的弊端,不能对文件夹的大小进行显示。
就两个类,
package com.he.jinbin; import java.util.Date;
/**
* 用于排序逻辑实体类
*
* @author 何锦彬 QQ 277803242
*
*/
public class FileItem implements Comparable {
private String fileName;
private long size;
private Date creatTime; public FileItem(String fileName, long size, Date creaDate) {
// TODO Auto-generated constructor stub
this.fileName = fileName;
this.size = size;
this.creatTime = creaDate;
} public String getFileName() {
return fileName;
} public void setFileName(String fileName) {
this.fileName = fileName;
} public long getSize() {
return size;
} public void setSize(long size) {
this.size = size;
} public Date getCreatTime() {
return creatTime;
} public void setCreatTime(Date creatTime) {
this.creatTime = creatTime;
} @Override
public int compareTo(Object o) {
if (this.size > ((FileItem) o).getSize())
return 1;
return -1;
} }
package com.he.jinbin; import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
/**
* 用于排序逻辑主类
*
* @author 何锦彬 QQ 277803242
*
*/
public class Sort {
public static List<FileItem> fileItems = new ArrayList<FileItem>();
public static FileItem maxFileItem;
public final static long M_1 = 1024 * 1024;
public static long temp = M_1; // 默认大于1M的文件 public static void addFileItem(File file) {
File[] fileList = file.listFiles();
for (int i = 0; i < fileList.length; i++) {
file = fileList[i];
if (file.isDirectory()) {
addFileItem(file);
} else {
if (file.length() > temp) {
fileItems.add(new FileItem(file.getPath(), file.length(),
new Date(file.lastModified())));
} }
} } public static void main(String[] args) throws IOException {
String filePath = null;
System.out.print("输入需要排序文件地址:");
BufferedReader inRd = new BufferedReader(new InputStreamReader(
System.in));
filePath = inRd.readLine();
System.out.print("输入需要排序文件大小(单位M):");
inRd = new BufferedReader(new InputStreamReader(System.in));
temp = Long.parseLong(inRd.readLine())*M_1;
inRd.close();
System.out.println("运行中,请稍等...");
File file = new File(filePath);
addFileItem(file);
SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd");
Collections.sort(fileItems);
System.out.println("从大到小文件排序为:");
for (int i = fileItems.size() - 1; i >= 0; i--) {
FileItem item = fileItems.get(i);
System.out.println(item.getFileName() + "-------" + item.getSize()
+ " KB" + "--------" + fmt.format(item.getCreatTime()));
} }
}
虽然简单, 但个人看法是, 程序只是工具, 为生活带来便利就是好程序,不是为了show技术,仅仅是为了实用
源码 下载地址https://github.com/bensonHe/sortFile

【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用的更多相关文章
- 【小程序分享篇 二 】web在线踢人小程序,维持用户只能在一个台电脑持登录状态
最近离职了, 突然记起来还一个小功能没做, 想想也挺简单,留下代码和思路给同事做个参考. 换工作心里挺忐忑, 对未来也充满了憧憬与担忧.(虽然已是老人, 换了N次工作了,但每次心里都和忐忑). 写写代 ...
- 框架一般用作Java应用程序的窗口,而Applet是Java小程序的窗口
框架一般用作Java应用程序的窗口,而Applet是Java小程序的窗口. 与Frame不同,Applet是在网页中显示的,也可以通过添加Panel进行组件布局. package TomAwt; im ...
- 第一章开发简单的Java应用程序
1.什么是程序? 程序一词来源于生活,通俗点讲就是把生活的的事用程序编写出来 并执行. 2.为什么要学习Java呢? Java是Sun Microsystems于1995年推出的高级编程语言 Java ...
- 转:Java程序员最常用的8个Java日志框架
作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用.WEB应用以及移动应用.然而日志系统是一个成熟Java应用所必不可少的,在开发和调试阶段,日志可以帮助我们更好更快地定位bug:在 ...
- Java程序员最常用的8个Java日志框架
转自:http://www.codeceo.com/article/8-java-log-framework.html 作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用.WEB应用 ...
- Java基础学习总结(40)——Java程序员最常用的8个Java日志框架
作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用.WEB应用以及移动应用.然而日志系统是一个成熟Java应用所必不可少的,在开发和调试阶段,日志可以帮助我们更好更快地定位bug:在 ...
- Mac/Windows开发跨平台.NET Core 控制台程序
自从微软开始在Github上开源搞.NET Core后,.NET的跨平台逐渐就成真了.多年使用各种语言,说实话还是csharp用起来最舒服.不过现在的工作环境里使用它的机会比较少,大部分时候只是用来写 ...
- Spring MVC + Spring + Mybitis开发Java Web程序基础
Spring MVC + Spring + Mybitis是除了SSH外的另外一种常见的web框架组合. Java web开发和普通的Java应用程序开发是不太一样的,下面是一个Java web开发在 ...
- 手机APP开发:学JAVA转安卓APP开发是不是很容易?
成都亿合云商小编为您分享:Android开发是以Java语言为基础的,Android 虽然使用Java 语言作为开发工具,但是在实际开发中发现,还是与Java SDK 有一些不同的地方.Android ...
随机推荐
- 从中间件的历史来看移动App开发的未来
在移动开发领域我们发现一个很奇怪的现象:普通菜鸟新手经过3个月的培训就可以拿到 8K 甚至上万的工作:在北京稍微有点工作经验的 iOS 开发,就要求 2 万一个月的工资.不知道大家是否想过:移动应用开 ...
- 谈谈一些有趣的CSS题目(十)-- 结构性伪类选择器
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...
- [自翻]fasthttp中文文档(持续更新)
fasthttp是由valyala编写的声称快于Go官方标准库net/http包十倍的快速HTTP实现.从各方的性能测试结果来看(评测一.评测二),fasthttp作为当下最快的http Go语言包当 ...
- [C#] 了解过入口函数 Main() 吗?带你用批处理玩转 Main 函数
了解过入口函数 Main() 吗?带你用批处理玩转 Main 函数 目录 简介 特点 方法的参数 方法的返回值 与批处理交互的一个示例 简介 我们知道,新建一个控制台应用程序的时候,IDE 会同时创建 ...
- 【原创经验分享】WCF之消息队列
最近都在鼓捣这个WCF,因为看到说WCF比WebService功能要强大许多,另外也看了一些公司的招聘信息,貌似一些中.高级的程序员招聘,都有提及到WCF这一块,所以,自己也关心关心一下,虽然目前工作 ...
- web api接口同步和异步的问题
一般来说,如果一个api 接口带上Task和 async 一般就算得上是异步api接口了. 如果我想使用异步api接口,一般的动机是我在我的方法里面可能使用Task.Run 进行异步的去处理一个耗时的 ...
- C语言动态走迷宫
曾经用C语言做过的动态走迷宫程序,先分享代码如下: 代码如下: //头文件 #include<stdio.h> #include<windows.h>//Sleep(500)函 ...
- PHP static静态属性和静态方法
这里分析了php面向对象中static静态属性和静态方法的调用.关于它们的调用(能不能调用,怎么样调用),需要弄明白了他们在内存中存放位置,这样就非常容易理解了.静态属性.方法(包括静态与非静态)在内 ...
- 使用Git Bash远程添加分支和简单部署你的静态页面
新建一个分支:git branch mybranch(mybranch你的分支名字) 切换到你的新分支: git checkout mybranch 将新分支发布在github上: git push ...
- iOS之App Store上架被拒Legal - 5.1.5问题
今天在看到App Store 上架过程中,苹果公司反馈的拒绝原因发现了这么一个问题: Legal - 5.1.5 Your app uses background location services ...