HarmonyOS 鸿蒙Next中download文件夹内容获取

HarmonyOS 鸿蒙Next中download文件夹内容获取 如何安装app以后,在download文件夹下面生成本app的文件夹,然后登录app以后,可以直接获取这个文件夹下面的内容,而不是手动选择。

5 回复

感谢您的提问,您问题中描述的“download文件夹”是指系统文件管理中“下载与接收”中的目录还是指应用内的目录还是什么?

更多关于HarmonyOS 鸿蒙Next中download文件夹内容获取的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


应用列表

  • 应用1
  • 应用2
  • 应用3

路径是这个吗:/storage/media/100/local/files/Docs/Download

在HarmonyOS Next中获取download文件夹内容:

  1. 使用@ohos.file.fs文件系统API访问download目录
  2. 主要接口:
    • fs.access(uri) 检查访问权限
    • fs.listFile(uri) 获取文件列表
  3. 需要声明以下权限:
    "requestPermissions": [
      {
        "name": "ohos.permission.READ_MEDIA"
      }
    ]
    
  4. 示例代码片段:
let fileList = fs.listFile('internal://download');
fileList.forEach(file => {
  console.log(file.name);
});

注意:需使用HarmonyOS SDK 3.0+版本。

在HarmonyOS Next中,可以通过以下步骤实现应用安装后自动在download目录创建专属文件夹,并直接访问其内容:

  1. 获取应用专属存储目录:
import fileio from '@ohos.fileio';
import featureAbility from '@ohos.ability.featureAbility';

// 获取应用内部存储目录
let context = featureAbility.getContext();
let internalDir = await context.getFilesDir();
  1. 创建应用专属download子目录:
let appDownloadDir = internalDir + '/download/your_app_name/';
try {
    fileio.mkdirSync(appDownloadDir);  // 同步创建目录
} catch (err) {
    console.error("目录已存在或创建失败");
}
  1. 访问目录内容(需申请存储权限):
import request from '@ohos.app.abilityAccessCtrl';

// 申请存储权限
let atManager = request.createAtManager();
try {
    await atManager.requestPermissionsFromUser(['ohos.permission.READ_MEDIA', 'ohos.permission.WRITE_MEDIA']);
    // 读取目录内容
    let dir = fileio.opendirSync(appDownloadDir);
    let entry;
    while ((entry = dir.readSync()) !== undefined) {
        console.log(entry.name);  // 输出文件名
    }
} catch (err) {
    console.error("权限申请失败");
}

注意:应用卸载时该目录会被自动清除。如需持久化存储,应使用公共download目录并添加应用标识前缀。

回到顶部