HarmonyOS documentViewPicker.select获取到的本地路径,fs.statSync(path)调用会报错,找不到文件
按照文档,本地测试:(使用fd和path会闪退)
import picker from '@ohos.file.picker';
import { BusinessError } from '@kit.BasicServicesKit';
import fs from '@ohos.file.fs';
@Entry
@Component
struct DocPickerPage {
  @State message: string = 'hello World';
  @State uri: Array<string> = []
  async selectFile() {
  try {
    let DocumentSelectOptions = new picker.DocumentSelectOptions();
    let documentPicker = new picker.DocumentViewPicker();
    documentPicker.select(DocumentSelectOptions).then((DocumentSelectResult: Array<string>) => {
      this.uri = DocumentSelectResult
    }).catch((err: BusinessError) => {
    });
  } catch (error) {
  }
}
  build() {
    Row() {
      Column() {
        Text('选择文件')
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(()=>{
            this.selectFile()
          })
        // select返回的uri权限是只读权限,开发者可以根据结果集中uri做进一步的处理。
        // 注意不能在picker的回调里直接使用此uri进行打开文件操作,需要定义一个全局变量保存uri,使用类似一个按钮去触发打开文件。
        Text('获取文件信息')
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(()=>{
            let path: string = this.uri[0]
            let file = fs.openSync(path, fs.OpenMode.READ_ONLY);
            let fileFd = 'fd://' + file.fd
            let stat1 = fs.statSync(file.fd);
            console.log(`result ==> ${JSON.stringify(stat1)}`);
            let stat2 = fs.statSync(fileFd);
            console.log(`result ==> ${JSON.stringify(stat2)}`);
            let stat3 = fs.statSync(path);
            console.log(`result ==> ${JSON.stringify(stat3)}`);
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}
        HarmonyOS
      
        赞
        
 收藏 0
 回答 1
 
        待解决
        
相关问题
 HarmonyOS  通过documentViewPicker.select选择的文件调用fs.copyFileSync报错 
993浏览  • 1回复 待解决
HarmonyOS 使用documentViewPicker选择文件获取文件路径后使用fs.readText读取文件内容失败 
1243浏览  • 1回复 待解决
HarmonyOS Flutter shared_preferences插件引用本地找不到文件路径以及文件 
1459浏览  • 1回复 待解决
HarmonyOS filePicker.DocumentViewPicker()获取的文件路径乱码 
1748浏览  • 1回复 待解决
HarmonyOS 页面滑动,通过provide提供的数据,会报错提示找不到 
1894浏览  • 2回复 待解决
HarmonyOS 使用DocumentViewPicker获取到的文件后用hash.hash失败 
1268浏览  • 1回复 待解决
HarmonyOS fs读取本地文件 
1482浏览  • 1回复 待解决
Flutter WebView加载本地html编译成ohos找不到路径的问题 
1717浏览  • 1回复 待解决
HarmonyOS Native调用TS侧方法,会报错,TS侧方法也不能获取到对象的变量 
1489浏览  • 1回复 待解决
Cmake编译文件不支持通配符选取文件吗,编译指定路径下的*.cpp报错找不到文件 
1842浏览  • 1回复 待解决
HarmonyOS fs.access(path)判断路径总是不存在 
944浏览  • 1回复 待解决
JS文件调用对象A在controller.runJavaScript之前,导致报错对象A找不到。 
1805浏览  • 1回复 待解决
文件上传的本地路径如何获取 
1323浏览  • 1回复 待解决
HarmonyOS 一多开发中router.pushNamedRoute报错找不到路径 
1198浏览  • 1回复 待解决
HarmonyOS 编译报错,资源文件/color/string找不到 
2556浏览  • 1回复 待解决
选择本机上的一个xlsx文件,本地解析文件,如何获取本地文件的path 
6953浏览  • 1回复 待解决
HarmonyOS  AnimationOptions发现目前本地代码依赖找不到 
1207浏览  • 1回复 待解决
HarmonyOS DocumentViewPicker如何从网络下载文件到本地 
1286浏览  • 1回复 待解决
HarmonyOS 上传文件,获取不到服务器返回的图片路径 
1448浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何处理文件名混淆造成的路径找不到问题? 
1193浏览  • 1回复 待解决
HarmonyOS fs.unlinkSync(path) 方法没有发挥删除单个文件的作用 
976浏览  • 1回复 待解决
HarmonyOS 调用DocumentViewPicker.save 不提示重名文件 
1171浏览  • 1回复 待解决
HarmonyOS 父组件有定义一个provide的别名,但是在子组件里面找不到会报错 
794浏览  • 1回复 待解决
HarmonyOS 相册获取到的图片uri,是否可以使用fs 
1310浏览  • 1回复 待解决
HarmonyOS  相册选的图片 用fs读不到信息 报错13900002 
2487浏览  • 1回复 待解决





















请参考以下demo: