fileAccess.getRoot()在应用打开几分钟后获取到的结果异常
版本 openHarmony 3.2.3 -release 关键代码如下: 初始化: this.fileAccessHelperAllServer = fileAccess.createFileAccessHelper(context) 刷新存储设备,后面简称刷新: rootIterator = await this.file
·
版本
openHarmony 3.2.3 -release
关键代码如下:
初始化:
this.fileAccessHelperAllServer = fileAccess.createFileAccessHelper(context)
刷新存储设备,后面简称刷新:
rootIterator = await this.fileAccessHelperAllServer.getRoots();
while (!isDone) { let result = rootIterator.next(); if (!result.done) Logger.info(TAG, "rootInfo: deviceType = " + result.value.deviceType + ", uri = " + result.value.uri + ", displayName =" + result.value.displayName + ", deviceFlags = " + result.value.deviceFlags + ", isDone =" + result.done); isDone = result.done; if (!isDone) { this.rootInfos.push(rootInfo) } } }
获取存储设备下首级文件:
let fileIterator = this.rootInfos[selectIndex].listFile()
现象:
刚开始时,初始化、刷新存储设备均正常,插拔U盘后刷新,获得的结果也正常。
大约5分钟后,获取到的存储设备结果像被锁定一样,再怎么插拔U盘后刷新存储设备都不再变,(情况1:进入应用后插入U盘,刷新,5分钟后,拔出U盘,刷新,U盘仍然在;情况2:进入应用后不插入U盘,刷新,5分钟后,插入U盘,刷新,U盘仍没有获取到)
情况1发生之后再插入U盘,仍然有U盘,这时候使用获取存储设备下首级文件将出现报错
listFile failed, errCode:14300004, errMessage:Get wrong result
通过volumeManager来获取设备均是正常的,插入U盘就能获取到,拔出U盘就获取不到,不会出现这个问题。
可以确定是fileAccess.getRoot()产生的问题。
更多推荐
所有评论(0)