Kotlin HMS驱动器套件查询和查询字符串
我是一个刚开始使用HMS的初学者。我正试图编写一个代码来查找“profile.json”文件,该文件以前被上传到云计算中的文件夹“DebtSorter”。我的代码(Kotlin)目前看起来像: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
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):
有关更多详细信息,请参见。最后,问题在于创建
线程。由于线程是异步的,我在线程之前创建了fileList
变量,在线程中对其进行了修改,并在线程之后返回该变量,因此实际的修改发生在方法已经返回空fileList
之后。我取出带有thread
的行,并将方法调用放入线程中。这就解决了问题。谢谢你的回答!最后,我的主要问题是包含了该线程,但我很感谢您指导我参考。我到处找他们