首页 技术 正文
技术 2022年11月6日
0 收藏 542 点赞 974 浏览 4466 个字

有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个文件占用了内存太大了。

使用例子如下,用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盘里的垃圾文件非常有用

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,028
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,518
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,365
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,146
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,780
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,857