安卓文件管理器

  • 排序文件

    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);
 }
相关推荐
white-persist3 分钟前
逆向入门经典题:从 IDA 反编译坑点到 Python 解题详细分析解释
c语言·开发语言·数据结构·python·算法·逆向·安全架构
是宇写的啊3 分钟前
MyBaties
java·开发语言·mybatis
followYouself6 分钟前
Gradle、AGP、Plugin插件基本知识
android·gradle·plugin·agp
钝挫力PROGRAMER6 分钟前
程序中事件机制的实现
java·后端·python·软件工程
-凌凌漆-7 分钟前
【Qt】const QString &与QString的区别
开发语言·qt
程序员威哥10 分钟前
Java调用YOLO模型性能优化实战:CPU/GPU加速与内存优化全指南
java·人工智能·后端
Drone_xjw11 分钟前
Qt QTableView 表头变白问题(Kylin/UKUI系统)原因分析与解决方案
开发语言·qt·kylin
mabing99311 分钟前
Qt 实现自定义分段控制器
开发语言·qt
爱喝雪碧的可乐15 分钟前
【Redis 毁灭计划】7 大高危操作打崩线上服务!从缓存雪崩到数据库宕机,90% 程序员都踩过的坑
开发语言·网络·redis·php
Xpower 1715 分钟前
OpenClaw Token 优化的技术方案与实践:OpenSpace 自进化 Skill 引擎
java·开发语言·人工智能