HarmonyOS鸿蒙Next中使用DocumentViewPicker保存文件到公共目录下,点击按钮后直接跳转到系统文件管理器对应目录的实现方法

HarmonyOS鸿蒙Next中使用DocumentViewPicker保存文件到公共目录下,点击按钮后直接跳转到系统文件管理器对应目录的实现方法 使用DocumentViewPicker,保存文件到公共目录下,点击按钮后,直接离开当前应用,直接跳转到系统文件管理器下对应目录。请问应该怎么实现

3 回复

使用startAbility跳转系统应用文件管理,暂无参数指定跳转路径:

let want: Want = {
  bundleName: 'com.huawei.hmos.filemanager',
  abilityName: 'MainAbility',
};
this.context.startAbility(want).then(() => {
  // do something
}).catch((err: BusinessError) => {
  console.error(`Failed to startAbility. Code: ${err.code}, message: ${err.message}`);
});

更多关于HarmonyOS鸿蒙Next中使用DocumentViewPicker保存文件到公共目录下,点击按钮后直接跳转到系统文件管理器对应目录的实现方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,使用DocumentViewPicker保存文件到公共目录并实现点击按钮后跳转到系统文件管理器对应目录,可以通过以下步骤实现:

  1. 配置权限:首先确保在config.json中声明了ohos.permission.READ_MEDIAohos.permission.WRITE_MEDIA权限。

  2. 创建DocumentViewPicker实例:使用DocumentViewPicker选择或创建文件。可以通过DocumentViewPicker.pickDocument方法选择文件,或通过DocumentViewPicker.createDocument方法创建新文件。

  3. 保存文件到公共目录:在createDocument的回调中,获取文件的URI,并使用FileFileOutputStream将数据写入文件。

  4. 跳转到系统文件管理器:使用Intent启动系统文件管理器,并传递文件路径或URI作为参数。可以通过Intent.ACTION_VIEWIntent.setData方法实现。

代码示例:

import document from '@ohos.document';
import featureAbility from '@ohos.ability.featureAbility';

// 创建文件
document.createDocument({
  displayName: 'example.txt',
  mimeType: 'text/plain',
  path: 'Documents' // 保存到Documents目录
}).then((file) => {
  // 写入文件内容
  let fileOutput = file.open('w');
  fileOutput.write('Hello, HarmonyOS!');
  fileOutput.close();

  // 跳转到系统文件管理器
  let intent = {
    action: 'ohos.intent.action.VIEW',
    uri: file.uri
  };
  featureAbility.startAbility(intent);
}).catch((error) => {
  console.error('Error creating file:', error);
});

在HarmonyOS鸿蒙Next中,使用DocumentViewPicker保存文件到公共目录并跳转到系统文件管理器对应目录的实现步骤如下:

  1. 使用DocumentViewPicker选择或创建文件,并保存文件到指定目录。
  2. 获取文件的URI路径。
  3. 使用Intent启动系统文件管理器,并传递文件的URI路径。

关键代码示例:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(fileUri, "application/octet-stream");
startActivity(intent);

确保在AndroidManifest.xml中声明必要的权限,如READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE

回到顶部