HarmonyOS 鸿蒙Next 元服务里不支持fileUri,怎么把文件uri转成文件路径

发布于 1周前 作者 caililin 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 元服务里不支持fileUri,怎么把文件uri转成文件路径

元服务里不支持fileUri,怎么把文件uri转成文件路径 

2 回复
目前接口只有fileUrl

使用fileUri对象来从URI中提取path,然后使用fs模块的writeFile或writeFileSync方法来将数据写入到沙盒路径中

更多关于HarmonyOS 鸿蒙Next 元服务里不支持fileUri,怎么把文件uri转成文件路径的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next元服务中,若需将文件URI转换成文件路径,由于系统不支持直接使用fileUri,可以通过以下步骤进行转换:

  1. 使用ContentResolver: 利用ContentResolver解析URI,获取文件的输入流(InputStream),然后将其写入到一个临时文件中,从而间接获得文件路径。

  2. 示例代码

    ContentResolver resolver = getContentResolver();
    InputStream inputStream = resolver.openInputStream(uri);
    File tempFile = new File(getExternalCacheDir(), "tempFile");
    FileOutputStream outputStream = new FileOutputStream(tempFile);
    byte[] buffer = new byte[1024];
    int bytesRead;
    while ((bytesRead = inputStream.read(buffer)) != -1) {
        outputStream.write(buffer, 0, bytesRead);
    }
    inputStream.close();
    outputStream.close();
    String filePath = tempFile.getAbsolutePath();
    

    注意:此段代码为Java示例,但核心思路是相通的。在鸿蒙系统中,应使用对应的API完成类似操作,即读取URI内容到本地文件。

  3. 注意事项: 确保应用有权限访问URI对应的文件,且处理完文件后应妥善管理临时文件,避免资源泄露。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部