HarmonyOS 鸿蒙Next中{"code":13900002}No such file or directory

HarmonyOS 鸿蒙Next中{“code”:13900002}No such file or directory 这边遇到一个图片路径获取的问题。报错{“code”:13900002}No such file or directory。我通过image()时,图片能在模拟器对应的app上显示出来。但是通过const file = await fileIo.open(‘yourFilePath’, fs.OpenMode.READ_ONLY);就报错了,到底是什么原因?图片是通过import { photoAccessHelper } from ‘@kit.MediaLibraryKit’;获取的


更多关于HarmonyOS 鸿蒙Next中{"code":13900002}No such file or directory的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

解决了,上传文件到服务器时,不能直接访问原始路径,要复制一份到沙箱环境,通过读取沙箱环境对应的路径,用沙箱里面的路径上传。真服了你们工单系统里面的老六,没有一个能解决问题!真是一帮草台班子

更多关于HarmonyOS 鸿蒙Next中{"code":13900002}No such file or directory的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,错误代码13900002表示系统无法找到指定的文件或目录。该错误通常由文件路径错误、资源未正确打包或权限配置问题导致。请检查应用资源文件是否存在,确认路径拼写无误,并验证文件是否已正确部署至应用沙箱目录。若使用资源管理器API,需确保调用方法符合鸿蒙API规范。

在HarmonyOS Next中,错误码13900002表示文件路径不存在或无法访问。根据你的描述,问题可能出现在以下几个方面:

  1. 路径格式问题fileIo.open() 需要的是文件在设备上的绝对路径,而通过 photoAccessHelper 获取的URI或路径可能不是直接可用的文件系统路径。你需要使用 photoAccessHelper.getAssets() 或其他方法获取实际的文件路径。

  2. 权限问题:确保应用已申请并获取了媒体库访问权限(ohos.permission.READ_IMAGEVIDEOohos.permission.WRITE_IMAGEVIDEO)。即使模拟器中图片能显示,fileIo 操作仍需要显式权限。

  3. 路径转换问题photoAccessHelper 返回的可能是资源标识符或URI,需通过 get()open() 方法转换为实际路径。例如:

    const asset = await photoAccessHelper.getAssets(photoAccessHelper.PhotoKeys.URI, value);
    const file = await fileIo.open(asset.uri, fs.OpenMode.READ_ONLY);
    
  4. 沙箱路径限制:应用可能只能访问沙箱内路径,而媒体库文件不在沙箱内。需通过 photoAccessHelper 的接口打开文件流,而非直接使用 fileIo

建议检查路径是否正确转换为实际文件路径,并确认权限已配置。如果问题仍存在,可尝试使用 photoAccessHelper.open() 直接获取文件资源。

回到顶部