安卓文件管理器

  • 排序文件

    java 复制代码
    static public void sortFiles(File[] mf, int mode) {
        switch (mode) {
        case FileConst.SORT_NAME:
            Arrays.sort(mf, new Comparator<File>() {
                public int compare(File object1, File object2) {
                    return object1.getName().compareTo(object2.getName());
                }
            });
            break;
        case FileConst.SORT_DATE:
            Arrays.sort(mf, new Comparator<File>() {
                public int compare(File object1, File object2) {
                    if (object1.lastModified() < object2.lastModified()) {
                        return -1;
                    } else if (object1.lastModified() == object2.lastModified()) {
                        return 0;
                    } else
                        return 1;
                }
            });
            break;
        case FileConst.SORT_TYPE:
            Arrays.sort(mf, new Comparator<File>() {
                public int compare(File object1, File object2) {
                    if ( object1.getName().lastIndexOf('.') == -1 )
                        return -1;
                    else if ( object2.getName().lastIndexOf('.') == -1 )
                        return 1;
                    String obj1 = object1.getName().substring(object1.getName().lastIndexOf('.')).toLowerCase();
                    String obj2 = object2.getName().substring(object2.getName().lastIndexOf('.')).toLowerCase();
                    return obj1.compareTo(obj2);
                }
            });
            break;
        case FileConst.SORT_GENRE:
             Arrays.sort(mf, new Comparator<File>() {
                 public int compare(File object1, File object2) {
                    if( object1.isDirectory())
                         return -1;
                    else if(object2.isDirectory())
                         return 1;
                    AudioFile obj1 = new AudioFile(new MtkFile(object1));
                     AudioFile obj2 = new AudioFile(new MtkFile(object2));
                    MetaData mMetaData1 = obj1.getMetaDataInfo();
                    MetaData mMetaData2 = obj2.getMetaDataInfo();
                     if( mMetaData1 == null )
                         return -1;
                     else if( mMetaData2 == null )
                         return 1;
                     String info1 = mMetaData1.getGenre();
                     String info2 = mMetaData2.getGenre();
                     if( info1 == null )
                         return -1;
                     else if( info2 == null )
                         return 1;
                    return info1.compareTo(info2);
                 }
             });
            break;
        case FileConst.SORT_ARTIST:
             Arrays.sort(mf, new Comparator<File>() {
                 public int compare(File object1, File object2) {
                    if( object1.isDirectory())
                         return -1;
                    else if(object2.isDirectory())
                         return 1;
                    AudioFile obj1 = new AudioFile(new MtkFile(object1));
                     AudioFile obj2 = new AudioFile(new MtkFile(object2));
                    MetaData mMetaData1 = obj1.getMetaDataInfo();
                    MetaData mMetaData2 = obj2.getMetaDataInfo();
                     if( mMetaData1 == null )
                         return -1;
                     else if( mMetaData2 == null )
                         return 1;
                     String info1 = mMetaData1.getArtist();
                     String info2 = mMetaData2.getArtist();
                     if( info1 == null )
                         return -1;
                     else if( info2 == null )
                         return 1;
                    return info1.compareTo(info2);
                 }
             });
            break;
        case FileConst.SORT_ALBUM:
            Arrays.sort(mf, new Comparator<File>() {
                public int compare(File object1, File object2) {
                    if( object1.isDirectory())
                            return -1;
                        else if(object2.isDirectory())
                            return 1;
                    AudioFile obj1 = new AudioFile(new MtkFile(object1));
                    AudioFile obj2 = new AudioFile(new MtkFile(object2));
                    MetaData mMetaData1 = obj1.getMetaDataInfo();
                    MetaData mMetaData2 = obj2.getMetaDataInfo();
                     if( mMetaData1 == null )
                         return -1;
                     else if( mMetaData2 == null )
                         return 1;
                    String info1 = mMetaData1.getAlbum();
                     String info2 = mMetaData2.getAlbum();
                     if( info1 == null )
                         return -1;
                     else if( info2 == null )
                         return 1;
                    return info1.compareTo(info2);
                }
            });
            break;
    
        default:
            break;
        }
    }
  • 判断文件类型

java 复制代码
private boolean filterFile(String[] mode) {
   if (mode == null) {
     return false;
   }
   for (String s : mode) {
     if (this.getName().toLowerCase().endsWith(s)) {
       return true;
     }
   }
   return false;
 }
public static final String audioSuffix[] = {
     ".mp3", ".wma", ".m3u",
     ".m3u8", ".wav", ".aif", ".m4a", ".aac", ".ac3", ".ec3", ".pls",
     ".wpl", ".ogg", ".mp2", ".ra", ".flac", ".ape", ".amr", ".ac4"
     ,".awb",".rm"
 };
 public static final String videoSuffix[] = {
     ".rmvb", ".avi", ".mkv",
     ".mp4", ".3gp", ".flv", ".mpg", ".ts", ".wmv", ".vob", ".rm",
     ".mov", ".avs", ".divx", ".asf", ".mpe", ".mpeg", ".dat", ".asx",
     ".m4v", ".tp", ".trp", ".tts", ".m2ts", ".mts", ".m1v", ".m2v",
     ".m4v", ".264", ".vc1", ".flv", ".hlv", ".pvr", ".ogm", ".webm",
     ".ram", ".iso", ".ssif", ".264", ".265", ".avs2", ".heic", ".ivf",
     ".m2t"
 };
public static final String photoSuffix[] = {
     ".png", ".bmp", ".jpg",
     ".PNG", ".jpeg", ".gif", ".webp", ".heif", ".heic"
 };
public boolean isPhotoFile() {

   return filterFile(FileConst.photoSuffix);
 }
相关推荐
雨白2 小时前
Android 快捷方式实战指南:静态、动态与固定快捷方式详解
android
hqk2 小时前
鸿蒙项目实战:手把手带你实现 WanAndroid 布局与交互
android·前端·harmonyos
LING3 小时前
RN容器启动优化实践
android·react native
后端AI实验室3 小时前
用AI写代码,我差点把漏洞发上线:血泪总结的10个教训
java·ai
程序员清风5 小时前
小红书二面:Spring Boot的单例模式是如何实现的?
java·后端·面试
belhomme5 小时前
(面试题)Redis实现 IP 维度滑动窗口限流实践
java·面试
恋猫de小郭5 小时前
Flutter 发布官方 Skills ,Flutter 在 AI 领域再添一助力
android·前端·flutter
Be_Better5 小时前
学会与虚拟机对话---ASM
java
开源之眼8 小时前
《github star 加星 Taimili.com 艾米莉 》为什么Java里面,Service 层不直接返回 Result 对象?
java·后端·github
Maori3168 小时前
放弃 SDKMAN!在 Garuda Linux + Fish 环境下的优雅 Java 管理指南
java