Android文件管理按类型查找,Android使用MediaStore获取手机上的文件

本文介绍了如何利用Android的MediaStore类查询不同类型的文件,包括所有文件、指定字段、文件夹名称、文件类型以及排序方式。通过ContentResolver和Cursor操作MediaStore.Files、MediaStore.Audio、MediaStore.Image和MediaStore.Video,实现多媒体文件的检索。
摘要由CSDN通过智能技术生成

一、MediaStore简介

MediaStore是android系统提供的一个多媒体数据库,专门用于存放多媒体信息的,通过ContentResolver即可对数据库进行操作。

MediaStore.Files: 共享的文件,包括多媒体和非多媒体信息

MediaStore.Audio: 存放音频信息

MediaStore.Image: 存放图片信息

MediaStore.Vedio: 存放视频信息

每个内部类中都又包含了Media,Thumbnails和相应的MediaColumns,分别提供了媒体信息,缩略信息和 操作字段。

二、使用

都是通过 ContentResolver 和 Cursor 来操作的。

2.1、MediaStore.Files

2.1.1、查询所有类型文件

/**

* 获取所有文件

**/

public static ListgetFilesByType(Context context) {

Listfiles = new ArrayList<>();

// 扫描files文件库

Cursor c = null;

try {

mContentResolver = context.getContentResolver();

c = mContentResolver.query(MediaStore.Files.getContentUri("external"), null, null, null, null);

int columnIndexOrThrow_ID = c.getColumnIndexOrThrow(MediaStore.Files.FileColumns._ID);

int columnIndexOrThrow_MIME_TYPE = c.getColumnIndexOrThrow(MediaStore.Files.FileColumns.MIME_TYPE);

int columnIndexOrThrow_DATA = c.getColumnIndexOrThrow(MediaStore.Files.FileColumns.DATA);

int columnIndexOrThrow_SIZE = c.getColumnIndexOrThrow(MediaStore.Files.FileColumns.SIZE);

// 更改时间

int columnIndexOrThrow_DATE_MODIFIED = c.getColumnIndexOrThrow(MediaStore.Files.FileColumns.DATE_MODIFIED);

int tempId = 0;

while (c.moveToNext()) {

String path = c.getString(columnInde

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值