HarmonyOS 鸿蒙Next fs.open报错13900001 到底需要什么权限啊 搞了一天了

HarmonyOS 鸿蒙Next fs.open报错13900001 到底需要什么权限啊 搞了一天了 fs.open报错13900001  到底需要什么权限啊 搞了一天了

6 回复

fs.open(v, fs.OpenMode.READ_ONLY)就行了

更多关于HarmonyOS 鸿蒙Next fs.open报错13900001 到底需要什么权限啊 搞了一天了的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


有完整代码么,沙盒路径和非沙盒路径 需要的权限是不一样的。

已经解决了 谢谢,

可以发个帖子详细讲一下相关解决过程吗?我也被这个卡好久了。

在HarmonyOS(鸿蒙)中,fs.open 报错 13900001 通常表示文件操作权限不足。要解决这个问题,首先需要确保你的应用已经正确申请了文件访问权限。

  1. 检查权限声明:在应用的 config.json 文件中,确保已经声明了 ohos.permission.READ_MEDIAohos.permission.WRITE_MEDIA 权限。例如:

    "reqPermissions": [
        {
            "name": "ohos.permission.READ_MEDIA"
        },
        {
            "name": "ohos.permission.WRITE_MEDIA"
        }
    ]
    
  2. 动态权限申请:在运行时,应用需要通过 requestPermissionsFromUser 方法动态申请权限。例如:

    import abilityAccessCtrl from '[@ohos](/user/ohos).abilityAccessCtrl';
    
    let atManager = abilityAccessCtrl.createAtManager();
    atManager.requestPermissionsFromUser(this.context, ['ohos.permission.READ_MEDIA', 'ohos.permission.WRITE_MEDIA'], (err, data) => {
        if (err) {
            console.error(`Failed to request permissions: ${err.message}`);
        } else {
            console.log('Permissions granted');
        }
    });
    
  3. 文件路径问题:确保你正在访问的文件路径是应用有权限访问的路径。鸿蒙系统对文件访问有严格限制,通常只能在应用的私有目录(如 this.context.filesDir)或通过文件选择器获得的路径上进行操作。

  4. 文件系统权限:如果你尝试访问外部存储或其他应用的数据,可能需要额外的权限或通过特定的API(如 FilePicker)来获取访问权限。

通过以上步骤,你应该能够解决 fs.open 报错 13900001 的问题。

回到顶部