首页 > 解决方案 > HMS Drive kit 查询和查询字符串

问题描述

我是刚开始使用 HMS 的初学者开发人员。我正在尝试编写一个代码来查找“profile.json”文件,该文件之前已上传到云中的“DebtSorter”文件夹中。我的代码(Kotlin)目前看起来像:

 var fileList: MutableList<File?> = mutableListOf()
        thread {
            try {
                val drive = buildDrive()
                val request = drive.files().list()
                var cursor: String?
                fileList = ArrayList()
                do {
                    var result = request.setQueryParam("fileName contains 'profile'")
                        .setOrderBy("fileName")
                        .setPageSize(10)
                        .setFields("*")
                        .execute()
                    for (file in result.files) {
                        fileList.add(file)
                    }
                    cursor = result.nextCursor
                    request.cursor = cursor
                } while (!StringUtils.isNullOrEmpty(cursor))
            } catch (e: java.lang.Exception) {
                Toast.makeText(applicationContext, "executeFilesList exception: $e", Toast.LENGTH_LONG)
                    .show()
            }
        }
        return fileList

但是,即使我将文件上传到云的根目录,返回的 fileList 也始终为空。我想我把查询字符串弄乱了,因为我可以很好地上传文件。有人可以告诉我查询字符串中使用的语法和关键字,并可能帮助我提供代码以及如何在 HMS Drive 工具包中的给定文件夹中搜索吗?

标签: kotlinhuawei-mobile-services

解决方案


更新:

也可以参考demo:https ://github.com/HMS-Core/hms-drive-serverdemo在demo中,线程直接执行获取文件列表的方法。


您的查询参数不正确。您无法定义查询字符串的格式。请参阅此示例查询语句。

(假设文件夹A的ID是f192358798744098816):

  1. 查询A文件夹中的所有文件,在parentFolder中运行'f192358798744098816'和mimeType !='application/vnd.huawei-apps.folder'
  2. 查询回收站中的所有文件夹,执行以下语句:mimeType='application/vnd.huawei-apps.folder' 和recycled=true

parentFolder 中的查询条件'fileId'和recycled=true不能一起使用,即用户不能查询回收站中指定父文件夹中的文件或文件夹。

更多详细信息,请参阅官方指南


推荐阅读