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
### 鸿蒙开发学习路径与资源 鸿蒙HarmonyOS)作为一款面向未来的全场景分布式操作系统,提供了丰富的学习资源和技术支持。以下是关于鸿蒙开发学习的一些重要方向和参考资料: #### 一、基础理论与核心概念 鸿蒙系统的开发涉及多个关键技术点,包括但不限于分布式能力、设备协同、一次开发多端部署以及原子化服务等[^3]。这些特性使得开发者能够更高效地构建适用于多种终端的应用程序。 - **分布式能力**:允许不同类型的硬件设备之间实现无缝协作,比如手机可以轻松调用智能手表或者电视的摄像头功能。 - **设备协同**:通过统一的操作界面和服务框架,让用户的体验更加流畅自然。 - **一次开发,多端部署**:借助自适应布局技术和标准化接口设计,减少重复劳动成本的同时提高了兼容性和扩展性。 - **原子化服务**:提供轻量化解决方案,使某些特定任务无需完整应用程序即可完成操作。 #### 二、官方文档与其他权威资料 对于初学者而言,深入理解官方文档是非常必要的第一步。以下列举了一些重要的在线资源供参考: 1. **HarmonyOS开发者官网** - 地址: https://developer.harmonyos.com/ - 推荐章节: - *《快速入门》*: 提供了一个概览性的介绍,帮助新手迅速了解整个生态体系及其运作机制. - *《ArkTS语言入门》*: ArkTS 是当前推荐使用的脚本语言之一,在此部分可以获得详尽的语言特性和编码技巧指导. - *《DevEco Studio 使用指南》*: DevEco Studio 是专门为 HarmonyOS 应用而定制集成开发环境(IDE),该手册详细描述了它的各项主要功能. 2. **其他补充材料** - 参考由社区成员分享的经验总结文章或书籍;例如,《纯血版华为鸿蒙(Harmony OS)开发手册》,它包含了超过890页的内容覆盖从基础知识到高级主题的所有方面[^1]. #### 三、实践演练——动手做项目 除了理论知识外,实际动手练习也是不可或缺的一环。这里给出几个典型的例子来引导你逐步掌握技能: ##### HelloWorld 案例分析 这是每一个编程爱好者都会经历的经典入门课题。“Hello World!”不仅展示了最简单的输出语句如何工作,还揭示了许多隐藏在其背后的原理,如项目的整体架构组成(config.json配置文件的作用)[^2]. ```javascript // config.json 示例片段 { "app": { "bundleName": "com.example.helloworld", "version": { "code": 1, "name": "1.0" } }, ... } ``` ##### 页面跳转逻辑实现 当用户点击按钮触发事件后应该导航至另一个视图页面时,则需要用到路由管理器等相关API函数来进行处理. 下面是一个简化后的伪代码表示形式: ```typescript @Entry @Component struct MainPage { build() { Column() { Button('Go to Next Page') .onClick(() => router.push({ uri: 'pages:SecondPage' })) }.width('100%').height('100%') } } ``` 以上仅展示了一部分内容结构样式调整方法论的一部分而已; 更加复杂的业务需求可能还需要考虑状态保持等问题解决办法才行哦! --- ### 工具准备与环境搭建 要顺利开展基于HarmonyOS平台上的软件工程活动之前,先得确保本地计算机已经正确设置了所需的软硬件条件。主要包括以下几个步骤: 1. 下载安装最新版本号对应的 `DevEco Studio` IDE 软件包; 2. 根据提示完成账户关联验证过程 (包括注册账号及实名制审核); 3. 导入目标模拟器镜像文件以便测试运行效果; 更多细节请参照具体教程说明文档查阅相关内容项下的指引信息[^2]. ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值