Kotlin HMS驱动器套件查询和查询字符串

Kotlin HMS驱动器套件查询和查询字符串,kotlin,huawei-mobile-services,Kotlin,Huawei Mobile Services,我是一个刚开始使用HMS的初学者。我正试图编写一个代码来查找“profile.json”文件,该文件以前被上传到云计算中的文件夹“DebtSorter”。我的代码(Kotlin)目前看起来像: var fileList: MutableList<File?> = mutableListOf() thread { try { val drive = buildDrive() val

我是一个刚开始使用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
var fileList:MutableList=mutableListOf()
线{
试一试{
val drive=buildDrive()
val请求=drive.files().list()
变量游标:字符串?
fileList=ArrayList()
做{
var result=request.setQueryParam(“文件名包含‘配置文件’”)
.setOrderBy(“文件名”)
.setPageSize(10)
.setFields(“*”)
.execute()
for(result.files中的文件){
添加(文件)
}
cursor=result.nextCursor
request.cursor=cursor
}而(!StringUtils.isNullOrEmpty(游标))
}catch(e:java.lang.Exception){
Toast.makeText(applicationContext,“ExecuteFileList异常:$e”,Toast.LENGTH\u LONG)
.show()
}
}
返回文件列表

但是,返回的文件列表始终为空,即使我将文件上载到云的根目录。我想我搞乱了查询字符串,因为我可以上传文件。有人能告诉我查询字符串中使用的语法和关键字,并可能帮助我了解代码以及如何在HMS Drive kit中的给定文件夹中搜索吗?

更新:

您还可以参考演示:在演示中,线程执行直接获取文件列表的方法


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

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

  • 要查询文件夹A中的所有文件,请运行以下语句:parentFolder和mimeType中的'f192358798744098816'应用程序/vnd.huawei apps.folder'
  • 要查询回收站中的所有文件夹,请运行以下语句:mimeType='application/vnd.huawei apps.folder'和recycled=true
  • parentFolder中的查询条件'fileId'和recycled=true不能一起使用,即用户不能查询回收站中指定父文件夹中的文件或文件夹


    有关更多详细信息,请参见。

    最后,问题在于创建
    线程。由于线程是异步的,我在线程之前创建了
    fileList
    变量,在线程中对其进行了修改,并在线程之后返回该变量,因此实际的修改发生在方法已经返回空
    fileList
    之后。我取出带有
    thread
    的行,并将方法调用放入线程中。这就解决了问题。

    谢谢你的回答!最后,我的主要问题是包含了该线程,但我很感谢您指导我参考。我到处找他们