MediaStore - 隐藏文件夹后删除文件

时间:2016-10-04 10:41:27

标签: android mediastore

我正在MediaStore上直接操作,并在我的应用添加/删除文件时添加/删除文件。我想要快速和即时MediaStore更新以及批处理操作的支持,这就是我这样做的原因。以下是添加操作的示例:

Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
File f = new File(path);
ContentValues values = new ContentValues(7);
values.put(MediaStore.Images.Media.TITLE, fileName);
values.put(MediaStore.Images.Media.DISPLAY_NAME, fileName);
values.put(MediaStore.Images.Media.DATE_TAKEN, dateTaken);
values.put(MediaStore.Images.Media.DATE_MODIFIED, dateModified / 1000L);
values.put(MediaStore.Images.Media.MIME_TYPE, ExtensionUtil.getMimeType(fileName));
values.put(MediaStore.Images.Media.ORIENTATION, rotation);
values.put(MediaStore.Images.Media.DATA, filePath);
if (latitude != null || longitude != null)
{
    values.put(MediaStore.Images.Media.LATITUDE, latitude);
    values.put(MediaStore.Images.Media.LONGITUDE, longitude);
}
ContentProviderOperation operation = ContentProviderOperation.newInsert(uri)
            .withValues(values)
            .build()

这是一个删除操作:

String columnData = MediaStore.Images.Media.DATA;
Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
ContentProviderOperation operation = ContentProviderOperation.newDelete(uri)
            .withSelection(columnData + "=?", new String[]{path})
            .build();

通过这种操作,我能够处理所有情况并按照我的意愿分批执行。

问题

隐藏文件夹。如果我隐藏了一个文件夹,我在其中创建了一个.nomedia文件,之后我想从MediaStore删除其中所有媒体的条目,但当然要保存存储上的文件。有关如何创建不删除文件的操作的任何想法吗?

我不想使用MediaScanner,我正在优化速度,我需要操作,以便我可以批量调用它们中的很多......

0 个答案:

没有答案