是的,您可以删除图像,但我不怀疑您可以一次全部删除。
我建议您查询Mediastore以获取所有图像的 _ID,然后遍历列表并删除它们。这是一些示例代码,但我相信它可以得到更好的优化。此代码与文件系统无关,因此它应该可以在任何地方工作。
获取 Mediastore.Images 上所有项目列表的代码
List<Long> mediaStoreIds = new ArrayList<Long>();
Cursor c = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[]{BaseColumns._ID}, null, null, null);
if (c != null) {
final int id = c.getColumnIndexOrThrow(BaseColumns._ID);
c.moveToFirst();
while (!c.isAfterLast()) {
Long mediaStoreId = c.getLong(id);
mediaStoreIds.add(mediaStoreId);
c.moveToNext();
}
c.close();
}
然后删除,你可以在原始循环中执行此操作,也可以在 arraylist 中循环,但这里是删除方法:
context.getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, BaseColumns._ID + "=?", new String[]{Long.toString(mediaStoreIds.get(i))});