Android 實現(xiàn)文件夾排序功能的實例代碼
更新時間:2018年09月21日 08:40:29 作者:李培能
這篇文章主要介紹了Android 實現(xiàn)文件夾排序功能的實例代碼,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下
按文件名排序
/**
* 按文件名排序
* @param filePath
*/
public static ArrayList<String> orderByName(String filePath) {
ArrayList<String> FileNameList = new ArrayList<String>();
File file = new File(filePath);
File[] files = file.listFiles();
List fileList = Arrays.asList(files);
Collections.sort(fileList, new Comparator<File>() {
@Override
public int compare(File o1, File o2) {
if (o1.isDirectory() && o2.isFile())
return -1;
if (o1.isFile() && o2.isDirectory())
return 1;
return o1.getName().compareTo(o2.getName());
}
});
for (File file1 : files) {
if (file1.isDirectory()) {
FileNameList.add(file1.getName());
}
}
return FileNameList;
}
基于名稱:
/**
* 按文件名排序
* @param filePath
*/
public static ArrayList<String> orderByName(String filePath) {
ArrayList<String> FileNameList = new ArrayList<String>();
File file = new File(filePath);
File[] files = file.listFiles();
List fileList = Arrays.asList(files);
Collections.sort(fileList, new Comparator<File>() {
@Override
public int compare(File o1, File o2) {
if (o1.isDirectory() && o2.isFile())
return -1;
if (o1.isFile() && o2.isDirectory())
return 1;
return o1.getName().compareTo(o2.getName());
}
});
for (File file1 : files) {
if (file1.isDirectory()) {
FileNameList.add(file1.getName());
}
}
return FileNameList;
}
基于最近修改時間:
/**
* 按文件修改時間排序
* @param filePath
*/
public static ArrayList<String> orderByDate(String filePath) {
ArrayList<String> FileNameList = new ArrayList<String>();
File file = new File(filePath);
File[] files = file.listFiles();
Arrays.sort(files, new Comparator<File>() {
public int compare(File f1, File f2) {
long diff = f1.lastModified() - f2.lastModified();
if (diff > 0)
return 1;
else if (diff == 0)
return 0;
else
return -1;// 如果 if 中修改為 返回-1 同時此處修改為返回 1 排序就會是遞減
}
public boolean equals(Object obj) {
return true;
}
});
for (File file1 : files) {
if (file1.isDirectory()) {
FileNameList.add(file1.getName());
}
}
return FileNameList;
}
基于大?。?/p>
/**
* 按文件大小排序
* @param filePath
*/
public static ArrayList<String> orderBySize(String filePath) {
ArrayList<String> FileNameList = new ArrayList<String>();
File file = new File(filePath);
File[] files = file.listFiles();
List<File> fileList = Arrays.asList(files);
Collections.sort(fileList, new Comparator<File>() {
public int compare(File f1, File f2) {
long s1 = getFolderSize(f1);
long s2 = getFolderSize(f2);
long diff = s1 - s2;
if (diff > 0)
return 1;
else if (diff == 0)
return 0;
else
return -1;// 如果 if 中修改為 返回-1 同時此處修改為返回 1 排序就會是遞減
}
public boolean equals(Object obj) {
return true;
}
});
for (File file1 : files) {
if (file1.isDirectory()) {
FileNameList.add(file1.getName());
}
}
return FileNameList;
}
/**
* 獲取文件夾大小
* @param file File實例
* @return long
*/
public static long getFolderSize(File file) {
long size = 0;
try {
java.io.File[] fileList = file.listFiles();
for (int i = 0; i < fileList.length; i++) {
if (fileList[i].isDirectory()) {
size = size + getFolderSize(fileList[i]);
} else {
size = size + fileList[i].length();
}
}
} catch (Exception e) {
e.printStackTrace();
}
return size;
}
總結(jié)
以上所述是小編給大家介紹的Android 實現(xiàn)文件夾排序功能的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Android EditText監(jiān)聽回車鍵并處理兩次回調(diào)問題
這篇文章主要介紹了Android EditText監(jiān)聽回車鍵并處理兩次回調(diào)問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08
Android內(nèi)核源碼 在Ubuntu上下載,編譯,安裝
本文主要介紹Android內(nèi)核源碼,想學(xué)習(xí)深入研究Android的朋友肯定要看看Android內(nèi)核知識的,這里對下載Android內(nèi)核源代碼的下載,安裝,編譯做了詳細的介紹,有興趣的小伙伴可以參考下2016-08-08
android調(diào)用webservice接口獲取信息
這篇文章主要為大家詳細介紹了android調(diào)用webservice接口獲取信息,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-11
Android將camera獲取到的YuvData在jni中轉(zhuǎn)化為Mat方法
今天小編就為大家分享一篇Android將camera獲取到的YuvData在jni中轉(zhuǎn)化為Mat方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
Android開發(fā)中應(yīng)用程序分享功能實例
這篇文章主要介紹了Android開發(fā)中應(yīng)用程序分享功能,結(jié)合實例形式分析了基于Intent實現(xiàn)Android程序分享功能的技巧,需要的朋友可以參考下2016-02-02

