Android基于名稱、修改時(shí)間、大小實(shí)現(xiàn)文件夾排序
更新時(shí)間:2018年09月24日 09:28:30 作者:xueyuediana
這篇文章主要為大家詳細(xì)介紹了Android基于名稱、修改時(shí)間、大小實(shí)現(xiàn)文件夾排序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了Android實(shí)現(xiàn)文件夾排序的具體代碼,供大家參考,具體內(nèi)容如下
基于名稱:
/** * 按文件名排序 * @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; }
基于最近修改時(shí)間:
/** * 按文件修改時(shí)間排序 * @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 同時(shí)此處修改為返回 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 同時(shí)此處修改為返回 1 排序就會是遞減 } public boolean equals(Object obj) { return true; } }); for (File file1 : files) { if (file1.isDirectory()) { FileNameList.add(file1.getName()); } } return FileNameList; } /** * 獲取文件夾大小 * @param file File實(shí)例 * @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; }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android開發(fā)自學(xué)筆記(四):APP布局下
這篇文章主要介紹了Android開發(fā)自學(xué)筆記(四):APP布局下,本文是上一篇的補(bǔ)充,需要的朋友可以參考下2015-04-04Android 中ScrollView嵌套GridView,ListView的實(shí)例
這篇文章主要介紹了Android 中ScrollView嵌套GridView,ListView的實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-03-03Android編程處理窗口控件大小,形狀,像素等UI元素工具類
這篇文章主要介紹了Android編程處理窗口控件大小,形狀,像素等UI元素工具類,可實(shí)現(xiàn)像素與dp的轉(zhuǎn)換、窗口寬度設(shè)置、彈出窗口中l(wèi)istview高度設(shè)置等功能,需要的朋友可以參考下2017-12-12Android Studio 4.0 新功能中的Live Layout Inspector詳解
這篇文章主要介紹了Android Studio 4.0 新功能中的Live Layout Inspector,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06Android開發(fā)中在TableView上添加懸浮按鈕的方法
如果直接在TableVIewController上貼Button的話會導(dǎo)致這個(gè)會隨之滾動(dòng),下面通過本文給大家分享在TableView上實(shí)現(xiàn)位置固定懸浮按鈕的兩種方法,對tableview 懸浮按鈕感興趣的朋友一起學(xué)習(xí)吧2016-11-11