使用例子如下,用JAVA 運行Sort
1, 輸入你要排序的文件路徑 , 如 例子是對H:\下的文件和它所有子文件夾下的文件進行排序
2, 輸入需要進行排序顯示的最新大小,如 例子是對10M 大小 以上的文件進行排序
3,從大到小排序後按
文件路徑\文件名-------大小 KB--------創建日期進行顯示(yyyyMMdd)
格式進行顯示,。
這樣你就可以把太大的文件刪除了,清理出空間
運行例子:H盤指向我的手機內存卡
代碼如下:
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
代碼如下:
package com.he.jinbin;
import java.util.Date;
/**
* 用於排序邏輯實體類
*/
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;
/**
* 用於排序邏輯主類
*/
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()));
}
}
}