HarmonyOS fs.createStream调用提示无权限

模拟流式读取resfile目录下的文件 使用fs.readText正常读取,尝试调用createStream创建流时提示无权限

HarmonyOS
23h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

如若文件 ‘text.txt’存储在resources-->resfile目录下,获取地址为:/data/storage/el1/bundle/entry/resources/resfile/text.txt

el1,设备级加密区:设备开机后即可访问的数据区。只有只读权限( r:打开只读文件,该文件必须存在)

//createStream测试代码,查看文件路径
import promptAction from '@ohos.promptAction';
import { BusinessError } from '@ohos.base';
import fs from '@ohos.file.fs';

@Entry
@Component
struct Page {
  @State message: string = 'Hello World';

  build() {
    Column() {

      Button('createStream')
        .onClick(()=>{
          let context = getContext(this) // 获取context
          let pathDir = context.resourceDir // 获取应用安装路径
          let filePath = pathDir + "/text.txt";

          //弹窗:查看文件路径
          if (filePath !== null) {
            promptAction.showToast({
              message: filePath
            });
          }

          fs.createStream(filePath, "r").then((stream: fs.Stream) => {
            stream.closeSync();
            console.info("createStream succeed");
          }).catch((err: BusinessError) => {
            console.error("createStream failed with error message: " + err.message + ", error code: " + err.code);
          });
        })
    }

  }
}

相关应用沙箱权限和文件路径:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/app-sandbox-directory-V5#%E5%BA%94%E7%94%A8%E6%96%87%E4%BB%B6%E7%9B%AE%E5%BD%95%E4%B8%8E%E5%BA%94%E7%94%A8%E6%96%87%E4%BB%B6%E8%B7%AF%E5%BE%84

在代码里能操作的空间只有/el2/base下的路径

el1是设备级加密区,设备开机后即可访问的数据区,只能存储运行所必要的文件

获取和修改加密分区:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-context-stage-V5#获取和修改加密分区

分享
微博
QQ
微信
回复
20h前
相关问题
HarmonyOS关于蓝牙无权限的问题
1196浏览 • 1回复 待解决
最新hdc shell 提示权限不足
2166浏览 • 1回复 待解决
读取本地json 文件提示权限拒绝
3265浏览 • 1回复 待解决
HarmonyOS await fs.open()
44浏览 • 1回复 待解决
HarmonyOS fs读取本地文件
8浏览 • 1回复 待解决
调用SL_IID_BUFFERQUEUE提示失败怎么解决
583浏览 • 1回复 待解决