HarmonyOS Next开发学习手册——获取并使用公共目录

通过 ArkTS 接口获取并访问公共目录

目录环境能力接口(ohos.file.environment)提供获取公共目录路径的能力,支持三方应用在公共文件用户目录下进行文件访问操作。

约束限制

  • 使用此方式,需确认设备具有以下系统能力:SystemCapability.FileManagement.File.Environment.FolderObtain。
if (!canIUse('SystemCapability.FileManagement.File.Environment.FolderObtain')) {
    console.error('this api is not supported on this device');
    return;
}
  • 公共目录获取接口仅用于获取公共目录路径,不对公共目录访问权限进行校验。若需访问公共目录需申请对应的公共目录访问权限。三方应用需要访问公共目录时,需通过弹窗授权向用户申请授予 Download 目录权限、Documents 目录权限或 Desktop 目录权限,具体参考 访问控制-向用户申请授权。
"requestPermissions" : [
    "ohos.permission.READ_WRITE_DOWNLOAD_DIRECTORY",
    "ohos.permission.READ_WRITE_DOCUMENTS_DIRECTORY",
    "ohos.permission.READ_WRITE_DESKTOP_DIRECTORY",
]

示例

  1. 获取公共目录路径。
 import { BusinessError } from '@kit.BasicServicesKit';
 import { Environment } from '@kit.CoreFileKit';

 function getUserDirExample() {
     try {
         const downloadPath = Environment.getUserDownloadDir();
         console.info(`success to getUserDownloadDir: ${downloadPath}`);
         const documentsPath = Environment.getUserDocumentDir();
         console.info(`success to getUserDocumentDir: ${documentsPath}`);
         const desktopPath = Environment.getUserDesktopDir();
         console.info(`success to getUserDesktopDir: ${desktopPath}`);
     } catch (error) {
         const err: BusinessError = error as BusinessError;
         console.error(`failed to get user dir, because: ${JSON.stringify(err)}`);
     }
 }
  1. 以 Download 目录为例,访问 Download 目录下的文件。
 import { BusinessError } from '@kit.BasicServicesKit';
 import { Environment } from '@kit.CoreFileKit';
 import { fileIo as fs } from '@kit.CoreFileKit';
 import { common } from '@kit.AbilityKit';

 function readUserDownloadDirExample() {
     // 检查是否具有 READ_WRITE_DOWNLOAD_DIRECTORY 权限,无权限则需要向用户申请授予权限。
     try {
         // 获取 Download 目录
         const downloadPath = Environment.getUserDownloadDir();
         console.info(`success to getUserDownloadDir: ${downloadPath}`);
         const context = getContext() as common.UIAbilityContext;
         const dirPath = context.filesDir;
         console.info(`succ
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值