有一個場景, 手機記憶卡空間被用光了,但又不知道哪個文件佔用了太大,一個個資料夾去找又太麻煩,所以我開發了個小程式把手機所有文件(包括路徑下所有層次子資料夾下的檔案)進行一個排序,這樣你就可以找出哪個檔案佔用了記憶體太大了。
使用範例如下,用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--------2013105D2.apk-------26305964KB--------201310250 \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
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())); } } }
以上是分享一個清理內存卡和U盤裡垃圾的小程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!