通过 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",
]
示例
- 获取公共目录路径。
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)}`);
}
}
- 以 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