Android从数据库中获取所有的文件

我就不多说什么了,直接贴我今天写的代码,注释什么的也不必,我的代码,浅显易懂

另外,一般我们不需要获取所有的文件,所以,需要查看MIMETYPE有多少种类型的去我的百度云下载文档

http://pan.baidu.com/s/1cyXaoA

我的代码中也给出了一些,但我的文档里面有全面详细的类型
如果有误,可以通过获取文件的时候拿它的mimetyep来打印一下看看就知道了


public class ScanSystemFile {

    /**
     * 纯文本
     */
    public final static String TEXT_PLAIN = "text/plain";// (纯文本)
    /**
     * (HTML文档)
     */
    public final static String TEXT_HTML = "text/html";
    /**
     * (XHTML文档)
     */
    public final static String XHTML = "application/xhtml+xml";

    /**
     * (GIF图像)
     */
    public final static String GIF = "image/gif";
    /**
     * 【PHP中为:image/pjpeg】 (JPEG图像)
     */
    public final static String JPEG = "mage/jpeg";
    /**
     * (PNG图像)【PHP中为:image/x-png】
     */
    public final static String PNG = "image/png";
    /**
     * (MPEG动画)
     */
    public final static String MPEG = "video/mpeg";
    /**
     * (任意的二进制数据)
     */
    public final static String OCTET = "application/octet-stream";
    /**
     * (PDF文档)
     */
    public final static String PDF = "application/pdf";
    /**
     * (Microsoft Word文件)
     */
    public final static String WORD = "application/msword";
    /**
     * (RFC 822形式)
     */
    public final static String RFC = "message/rfc822";
    /**
     * (HTML邮件的HTML形式和纯文本形式,相同内容使用不同形式表示)
     */
    public final static String ALT = "multipart/alternative";
    /**
     * (使用HTTP的POST方法提交的表单)
     */
    public final static String FORM = "application/x-www-form-urlencoded";
    /**
     * (同上,但主要用于表单提交时伴随文件上传的场合)
     */
    public final static String FORM_DATA = "multipart/form-data";

    public static Context context = MyApplication.context;

    public static ArrayList<FileDetail> scanMusicFile() {

        Cursor cursor = context.getContentResolver().query(
                MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                new String[] { MediaStore.Audio.Media._ID,
                        MediaStore.Audio.Media.DISPLAY_NAME,
                        MediaStore.Audio.Media.TITLE,
                        MediaStore.Audio.Media.DURATION,
                        MediaStore.Audio.Media.ARTIST,
                        MediaStore.Audio.Media.ALBUM,
                        MediaStore.Audio.Media.YEAR,
                        MediaStore.Audio.Media.MIME_TYPE,
                        MediaStore.Audio.Media.SIZE,
                        MediaStore.Audio.Media.DATA }, "_size>?",
                new String[] { 1024 * 1024 + "" }, null);

        ArrayList<FileDetail> fileList = new ArrayList<FileDetail>();
        while (cursor.moveToNext()) {

            String name = cursor
                    .getString(cursor
                            .getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME));
            String type = cursor.getString(cursor
                    .getColumnIndexOrThrow(MediaStore.Audio.Media.MIME_TYPE));

            String data = cursor.getString(cursor
                    .getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
            Log.e("Name,Type,data", name + " ," + type + ", " + data);
            FileDetail file = new FileDetail(name, type, data);
            fileList.add(file);

        }

        return fileList;
    }

    /**
     * 返回指定类型的文件
     * 
     * @param types
     *            指定的类型
     */
    public static ArrayList<FileDetail> scanAllFile(String[] selectionArg) {
        String[] columns = new String[] { MediaStore.Files.FileColumns.TITLE,
                MediaStore.Files.FileColumns.DATA,MediaStore.Files.FileColumns.MIME_TYPE };

        Uri uri = MediaStore.Files.getContentUri("external");
        String selection =  MediaStore.Files.FileColumns.MIME_TYPE + "=?";

        Cursor c;
        c= MyApplication.context.getContentResolver().query(uri,
                columns, selection,selectionArg, null);
        ArrayList<FileDetail> fileList = new ArrayList<FileDetail>();
        while(c.moveToNext()){
            String title = c.getString(c.getColumnIndexOrThrow(MediaStore.Files.FileColumns.TITLE));
            String data = c.getString(c.getColumnIndexOrThrow(MediaStore.Files.FileColumns.DATA));
            String type = c.getString(c.getColumnIndexOrThrow(MediaStore.Files.FileColumns.MIME_TYPE));
            FileDetail file = new FileDetail(title, type, data);
            fileList.add(file);
        }
        return fileList;
    }
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值