【发布时间】:2016-07-19 17:06:43
【问题描述】:
我使用CursorLoader 获得了视频的缩略图路径。 MediaStore 给了我缩略图路径。现在当我检查缩略图路径是否存在时,它给了我file not exists。
我找到了缩略图路径使用
Cursor c = new CursorLoader(getApplicationContext(), MediaStore.Video.Thumbnails.getContentUri("external"), project, selection, selectionArgs, null).loadInBackground();
while(c.moveToNext()) {
//Toast.makeText(getApplicationContext(), c.getString(1),Toast.LENGTH_LONG).show();
paths=c.getString(1);
}
Toasts 显示类似的路径
/storage/emulated/0/DCIM/.thumbnails/1411810114902.jpg
所以我决定在处理文件之前检查文件是否存在。
File file = new File(paths);
if (file.exists())
{
Toast.makeText(getApplicationContext(), "YES",Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(getApplicationContext(), "NO",Toast.LENGTH_LONG).show();
}
令人惊讶的是,它显示NO 如何!什么媒体商店给了我?我的主要目的是将缩略图图像操作或转换为 base64 字符串。但是decodeFile 方法给出了File not exists 错误,所以我尝试检查该文件是否存在。
当 mediaStore 给出文件路径时,为什么会出现类似文件不存在的错误。这是怎么回事?我错过了什么?操作/访问缩略图的方法是什么?
【问题讨论】:
-
做所有的缩略图,有同样的问题吗?有时,删除图像后媒体存储数据库不会更新。
-
是的。如果我将文件检查放在循环中,所有路径都显示
NO -
你能显示你的整个代码游标加载器中的每个对象是什么你能显示相应的值吗?
标签: android mediastore