查询MediaStore中具有“分组依据”且无法正常工作的特定文件夹

时间:2018-07-22 16:02:35

标签: android sqlite mediastore

我正在尝试以两种不同的方式查询MediaStore。一种是显示不在排除列表中的文件夹中的所有图像。另一种是只显示排除列表中的文件夹。我可以显示所有文件夹,但是无法显示排除的文件夹。

这是第一个查询

Query{
uri=content://media/external/file
projection=[parent, bucket_display_name, count(*), _data, max(date_modified)]
selection='media_type=? or media_type=?) group by (parent) HAVING (_data NOT LIKE ? '
args=[1, 3, /storage/emulated/0/Test]
sortMode='bucket_display_name'
ascending='true'
limit='-1'}

应显示除排除文件夹外的所有文件夹。 “ _data不喜欢/ storage / emulated / 0 / Test”

我也尝试过这样

Query{
uri=content://media/external/file
projection=[parent, bucket_display_name, count(*), _data, max(date_modified)]
selection='media_type=? or media_type=?) group by (parent) HAVING (_data != ? '
args=[1, 3, /storage/emulated/0/Test]
sortMode='bucket_display_name'
ascending='true'
limit='-1'}

使用!=而不是不喜欢。

我也尝试过使用通配符

args=[1, 3, %/storage/emulated/0/Test%]

但是如果我有一个Test2文件夹,它也会显示我不想要的文件夹。

然后,我用来显示排除的唯一区别是将!=变成= OR不喜欢。

这是光标找到的文件夹的列表

D/Folder: FolderCursor - path: /storage/emulated/0/Misc
          FolderCursor - name: Misc
          FolderCursor - id: 1902
          FolderCursor - count: 3
          FolderCursor - dm: -1
          Folder: Pictures id: 6
D/Folder: FolderCursor - path: /storage/emulated/0/Pictures
          FolderCursor - name: Pictures
          FolderCursor - id: 6
          FolderCursor - count: 1792
          FolderCursor - dm: 1523304236
          Folder: Test id: 1900
D/Folder: FolderCursor - path: /storage/emulated/0/Test
          FolderCursor - name: Test
          FolderCursor - id: 1900
          FolderCursor - count: 1
          FolderCursor - dm: -1
          Folder: test2 id: 1906
          FolderCursor - path: /storage/emulated/0/test2
D/Folder: FolderCursor - name: test2
          FolderCursor - id: 1906
          FolderCursor - count: 3
          FolderCursor - dm: -1

请帮助我弄清楚如何获得包含和不包含排除文件夹的文件夹的结果。

0 个答案:

没有答案