有没有HarmonyOS鸿蒙Next的api能访问到file://docs/storage/Users/currentUser/Documents/这个用户文件路径?

不使用DocumentViewPicker,有没有HarmonyOS鸿蒙Next的api能访问到file://docs/storage/Users/currentUser/Documents/这个用户文件路径?

6 回复

鸿蒙系统的文件访问框架(FAF)出于安全考虑,严格限制应用直接访问公共目录路径(如file://docs/storage/Users/currentUser/Documents/)。

替代实现方案

通过fileAccess.createFileAccessHelper创建文件管理实例,实现安全文件操作:

let context = getUIContext().getHostContext() as common.UIAbilityContext;
let fileAccessHelper = fileAccess.createFileAccessHelper(context, [
  { bundleName: "com.ohos.UserFile.ExternalFileManager", abilityName: "FileExtensionAbility" }
]);

// 示例:复制文件到Documents目录
let sourceUri = "file://docs/storage/Users/currentUser/Download/source.txt";
let destUri = "file://docs/storage/Users/currentUser/Documents";
let displayName = "copied.txt";

fileAccessHelper.copyFile(sourceUri, destUri, displayName).then((newUri) => {
  console.log("File copied to: " + newUri);
}).catch((err) => {
  console.error("Copy failed: " + err.message);
});

此方式通过系统文件管理器界面获取用户授权,支持文件复制、移动等操作。

更多关于有没有HarmonyOS鸿蒙Next的api能访问到file://docs/storage/Users/currentUser/Documents/这个用户文件路径?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这个目录是没法访问的,沙箱存储权限特别严格,通过上下文能拿到的路径是el2下面的,

参考一下这个沙箱介绍:

应用沙箱目录-应用文件-Core File Kit(文件基础服务)-应用框架 - 华为HarmonyOS开发者

目前鸿蒙系统的获取方式只能通过DocumentViewPicker方式获取:具体参考以下内容

文档类uri获取方式

https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-file-fs

文件操作都在这了,不过可能会涉及到权限问题

在HarmonyOS Next中,可以通过@ohos.file.fs模块的API访问用户文档路径。使用getOrCreateLocalDir()获取应用沙箱路径后,通过拼接路径字符串可以访问/storage/Users/currentUser/Documents/。注意:直接访问系统级用户目录需要声明ohos.permission.FILE_ACCESSohos.permission.READ_USER_STORAGE权限。实际路径可能因设备不同存在差异,建议使用环境变量或公开目录API替代硬编码路径。

在HarmonyOS Next中,可以通过ohos.file.fs模块的API访问用户文档目录。推荐使用以下方式获取Documents路径:

  1. 使用getOrCreateLocalDir()获取应用沙箱目录:
import fs from '@ohos.file.fs';

let dir = fs.getOrCreateLocalDir();
  1. 通过Environment模块获取标准目录路径:
import environment from '@ohos.file.environment';

let docsDir = await environment.getDirectory(environment.DirectoryType.DIRECTORY_DOCUMENTS);

注意:直接访问file://docs/storage/Users/currentUser/Documents/这类绝对路径在HarmonyOS Next的安全模型下是不被允许的,必须使用官方提供的API来访问受保护的文件区域。

回到顶部