安卓文件管理器

  • 排序文件

    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);
 }
相关推荐
XMYX-05 分钟前
28 - Go JSON 数据操作
开发语言·golang·json
三*一9 分钟前
Mapbox GL JS 自研面要素整形工具开发实录
开发语言·javascript·arcgis·ecmascript
应用市场12 分钟前
Android Recovery 模式工作原理与定制实战
android
Apache RocketMQ35 分钟前
RocketMQ源码解析——秒级定时消息介绍
java·云原生·消息队列·rocketmq·java-rocketmq
超级小星星1 小时前
C 语言结构体内存对齐深度解析:从概念到实战
c语言·开发语言
狮子座明仔1 小时前
AgentSPEX:当 Agent 框架开始把“控制流“从 Python 里抠出来
开发语言·python
xiaoming00181 小时前
JAVA项目打包部署运维全流程(多服务、批量)
java·linux·运维
拾-光1 小时前
【Git】命令大全:从入门到高手,100 个最常用命令速查(2026 版)
java·大数据·人工智能·git·python·elasticsearch·设计模式
笨笨饿1 小时前
74_SysTick滴答定时器中断
c语言·开发语言·人工智能·单片机·嵌入式硬件·算法·学习方法
无人不xiao1 小时前
springBoot 实现 接口进度条
java·spring boot·后端