사용 예는 다음과 같습니다. 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-------36224000KB---------20130525
H:/BaiduMap/vmp/h/quanguogailue.dat-------27616013 KB---------20130512
H:/다운로드/RedGame_Android_2017-2013-11-06_18-54-27-CI-20.apk-------26563096KB---------20131111
H:/ugame/ugameSDK/downloads/6F9757F4442DD99FC89FA387C80405D2.apk------26305964KB---------20131025
H:/Download/com.tencent.mobileqq_60.apk-------25417880KB-------20130714
H:/Android/data/com.android.gallery3d/cache/imgcache.0-------22070789 KB---------20140210
다음과 같이 코드 코드를 복사합니다.
패키지 com.he.jinbin;
java.util.Date 가져오기;
/**
* 논리적 엔터티 클래스를 정렬하는 데 사용됩니다.
*/
공개 클래스 FileItem은 Comparable {을 구현합니다.
개인 문자열 파일명;
개인용 긴 사이즈;
privateDatecreatTime;
public FileItem(String fileName, 긴 크기, Date creatDate) {
// TODO 자동 생성 생성자 스텁
this.fileName = 파일이름;
this.size = 크기;
this.creatTime = creatDate;
}
공개 문자열 getFileName() {
파일명 반환;
}
공공 무효 setFileName(문자열 파일 이름) {
this.fileName = 파일이름;
}
공개 긴 getSize() {
반품 크기;
}
공공 무효 setSize(긴 크기) {
this.size = 크기;
}
공개 날짜 getCreatTime() {
returncreatTime;
}
공공 무효 setCreatTime(날짜 creatTime) {
this.creatTime = creatTime;
}
@보수
공개 int 비교To(객체 o) {
if (this.size > ((FileItem) o).getSize())
1을 반환합니다.
-1을 반환합니다.
}
}
다음과 같이 코드 코드를 복사합니다.
패키지 com.he.jinbin;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
java.io.파일 가져오기;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
java.util.Date 가져오기;
java.util.List 가져오기;
/**
* 정렬 로직에 사용되는 메인 클래스
*/
공개 클래스 정렬 {
public static List<FileItem> fileItems = new ArrayList<FileItem>();
공개 정적 FileItem maxFileItem;
공개 최종 정적 긴 M_1 = 1024 * 1024;
public static long temp = M_1; // 기본적으로 1M보다 큰 파일
공개 정적 무효 addFileItem(파일 파일) {
파일[] fileList = file.listFiles();
for (int i = 0; i < fileList.length; i++) {
파일 = 파일목록[i];
if (file.isDirectory()) {
addFileItem(파일);
} 또 다른 {
if (file.length() > 임시) {
fileItems.add(새 FileItem(file.getPath(), file.length(),
new Date(file.lastModified())));
}
}
}
}
public static void main(String[] args)에서 IOException이 발생합니다.
문자열 파일 경로 = null;
System.out.print("정렬할 파일의 주소를 입력하세요:");
BufferedReader inRd = 새 BufferedReader(새 InputStreamReader(
시스템인));
filePath = inRd.readLine();
System.out.print("정렬할 파일 크기를 입력하세요(단위 M):");
inRd = new BufferedReader(new InputStreamReader(System.in));
임시 = Long.parseLong(inRd.readLine())*M_1;
inRd.close();
System.out.println("실행중입니다. 잠시만 기다려주세요...");
파일 파일 = 새 파일(filePath);
addFileItem(파일);
SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd");
Collections.sort(fileItems);
System.out.println("큰 파일부터 작은 파일까지 정렬:");
for (int i = fileItems.size() - 1; i >= 0; i--) {
FileItem 항목 = fileItems.get(i);
System.out.println(item.getFileName() + "-------" + item.getSize()
+ " KB" + "---------" + fmt.format(item.getCreatTime()));
}
}
}