HarmonyOS 鸿蒙Next应用如何访问平板电脑上自己创建的文件夹下的文件

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

HarmonyOS 鸿蒙Next应用如何访问平板电脑上自己创建的文件夹下的文件

需求是这样的,我需要在鸿蒙平板上跑离线cesium.js,需要加载大量瓦片资源和地形资源,瓦片资源是png图片格式,地形资源是.terrain格式,由于数据量大,所以需要将这些资源文件保存到平板上,而不是沙箱文件(因为数据量大,有几个T,如果放在沙箱中对于后期数据更新也是很麻烦的,所以能放在平板的文件管理里面最好),之前将平板升级到harmonyOS next版本,发现连接USB后不能进行文件传输,加上访问公共目录必须得2in1设备才支持,所以现在把系统回退到了4.2.0.220,但是不知道这个版本能支持读公共目录不,请各位大佬帮我指点下这个方案是否可行,或者有没有其他方案能解决这个问题


更多关于HarmonyOS 鸿蒙Next应用如何访问平板电脑上自己创建的文件夹下的文件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

打开系统文件管理器可以参考以下代码:

当前可采用startability接口拉起文件管理器 :
public static async openFolder(fileUri: string, context?: context.UIAbilityContext): Promise<void> {
let want: Want = {
bundleName: ‘com.huawei.hmos.filemanager’,
abilityName: ‘MainAbility’,
parameters: {
‘fileUri’: fileUri
}
};
try {
context?.startAbilityForResult(want).then((data) => {
HiLog.info(tag, 'startAbility data: ’ + JSON.stringify(data));
});
} catch (error) {
HiLog.warn(tag, 'openFolder err = ’ + JSON.stringify(error));
throw error as Error;
}
}
拉起文件管理应用参考:
let want: Want = {
bundleName: 'com.huawei.hmos.filemanager',
abilityName: 'MainAbility'
}
let context = getContext() as common.UIAbilityContext
context.startAbility(want)

更多关于HarmonyOS 鸿蒙Next应用如何访问平板电脑上自己创建的文件夹下的文件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next应用中,访问平板电脑上自己创建的文件夹下的文件,可以通过以下步骤实现:

  1. 获取存储权限: 在应用的manifest文件中声明必要的存储权限,如ohos.permission.READ_EXTERNAL_STORAGEohos.permission.WRITE_EXTERNAL_STORAGE。然后在运行时请求这些权限。

  2. 使用Storage Access Framework (SAF): 鸿蒙系统提供了SAF来访问文件系统。你可以通过SAF的API来选择并访问用户指定的文件夹或文件。

  3. 直接路径访问(不推荐,但可行): 如果知道文件夹的绝对路径,可以直接使用该路径进行文件操作。但这种方法需要确保路径的正确性和应用有相应的权限。

  4. 文件选择器: 使用系统提供的文件选择器API,让用户从文件系统中选择文件或文件夹,然后应用可以获得对该文件或文件夹的访问权限。

  5. API调用: 利用鸿蒙系统的文件访问API(如FileIoManagerFileDescriptor等)来进行文件读写操作。

示例代码(简化):

// 假设已获取权限,且路径正确
std::string filePath = "/path/to/your/folder/file.txt";
FileIoManager fileIoManager;
fileIoManager.OpenFile(filePath, "r");
// 进行文件读取操作

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

回到顶部