Android从数据库中获取所有的文件
2016-06-02 21:50
399 查看
我就不多说什么了,直接贴我今天写的代码,注释什么的也不必,我的代码,浅显易懂
另外,一般我们不需要获取所有的文件,所以,需要查看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; } }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件