列出SD卡所有视频文件
来源:互联网 发布:c语言的逗号表达式 编辑:程序博客网 时间:2024/06/12 00:55
方法一、递归列出SD卡路径下的所有文件,若该文件是视频文件,则将其加入到结果列表中。最终,结果列表中即保存所有的视频文件。部分代码如下:
List<File> mFiles = new ArrayList<File>();private void getAllVideoFiles(File root) {File[] files = root.listFiles();if (files != null) {for (File file : files) {if (file.isDirectory()) {getAllVideoFiles(file);} else {if (isVideo(file)) {mFiles.add(file);}}}}}private boolean isVideo(File file) {String name = file.getName();int pos = name.lastIndexOf(".");if (pos != -1) {String suffix = name.substring(pos+1).toLowerCase();if (suffix.equals("mp4") ||suffix.equals("3gp") ||suffix.equals("avi")) {return true;}}return false;}由于该方法要遍历所有文件,所有比较低效。
方法二、使用操作系统的ContentProvider进行查询,代码如下:
public class MainActivity extends Activity {private ListView mListView;private List<String> mFileNames;private List<String> mFilePaths;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);if (!LibsChecker.checkVitamioLibs(this)) {return;}setContentView(R.layout.activity_main);this.mListView = (ListView) findViewById(R.id.lv);getAllVideoFiles();this.mListView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, this.mFileNames));this.mListView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {Intent intent = new Intent(MainActivity.this, VideoActivity.class);intent.putExtra("path", mFilePaths.get(position));startActivity(intent);}});}private void getAllVideoFiles() {this.mFileNames = new ArrayList<String>();this.mFilePaths = new ArrayList<String>();Cursor cursor = getContentResolver().query(Media.EXTERNAL_CONTENT_URI, null, null, null, null);while (cursor.moveToNext()) {// 文件名称String name = cursor.getString(cursor.getColumnIndex(Media.DISPLAY_NAME));this.mFileNames.add(name);// 文件路径byte[] data = cursor.getBlob(cursor.getColumnIndex(Media.DATA));this.mFilePaths.add(new String(data, 0, data.length-1));}}}这种方法即简单又高效。
0 0
- 列出SD卡所有视频文件
- Android 扫描SD卡中的所有视频文件
- 获取SD卡视频文件缩略图
- 判断SD卡中的视频文件是否存在
- VideoView播放SD卡上指定视频文件
- 创建sd卡目录和列出sd卡目录
- Android获取SD卡上图片和视频文件及其缩略图
- Android系统如何扫描手机SD卡中的视频文件
- 获取SD卡视频文件缩略图和保持屏幕常亮
- Android获取SD卡上图片和视频文件及其缩略图
- 列出所有进程
- SQLite 列出所有表
- 列出所有用户表
- windows列出所有分区
- 列出所有音乐文件
- 列出所有组合排序
- 列出所有音乐文件
- 列出字符串所有组合
- C++primer 2.5const限定符(未完)
- span设置宽度有效无效问题
- 播放游戏背景音乐 步骤
- .java文件的ANSI编码转换为UTF-8编码
- 判断操作系统是32位还是64位
- 列出SD卡所有视频文件
- [nginx源码分析]nginx filter模块解析
- Android APPUI设计师必知:pt sp dp之间的关系
- JAVA 虚拟机内存区域与内存溢出理解
- IKAnalyzer中文分词去停用词问题解决
- 搭建SonarQube分析Android代码遇到的问题
- Robot Framework 经验谈 - 在窗口间随意切换
- java下http下载文件客户端 和上传文件客户端代码
- nyoj1185最大最小值(线段树)