您的位置:首页 > 移动开发 > Android开发

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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 数据库