1# FilePicker
2
3## 简介
4
5FilePicker应用是OpenHarmony中预置的系统应用,为用户提供文件选择及保存功能
6
7### 架构图
8
9![](figures/FP_FMS.png)
10
11## 目录
12
13```
14/applications/standard/filepicker
15├── figures                     # 架构图目录
16├── product                     # 产品层模块目录
17│   └── pad                     # pad模式模块目录
18|       └── src
19|           ├── main
20|               ├── ets
21│                   ├── MainAbility              # MainAbility代码目录
22|                       ├── module               # 公共文件目录
23|                       ├── pages                # 业务特性的View层目录
24|                       ├── workers              # worker对于的js文件目录
25│                   └── AbilityStage.ts
26|               ├── resources   # 资源目录
27|               └── config.json # 项目配置信息
28│   └── phone                   # phone模式模块目录
29|       └── src
30|           ├── main
31|               ├── ets
32│                   ├── MainAbility              # MainAbility代码目录
33|                       ├── module               # 公共文件目录
34|                       ├── pages                # 业务特性的View层目录
35|                       ├── workers              # worker对于的js文件目录
36│                   └── AbilityStage.ts
37|               ├── resources   # 资源目录
38|               └── config.json # 项目配置信息
39├── signature                   # 证书文件目录
40├── LICENSE                     # 许可文件
41```
42
43## 签名
441. [IDE签名配置](doc/signature.md)
45
46## 编译运行
471. 签名配置完成后通过IDE Build -> Make All Modules即可编译出每个模块对应的hap包。
482. 将编译生成的签名后的hap包 如phone模块的phone-entry-debug-standard-ark-signed.hap放到sig_hap.rar解压的目录。
493. 修改sign-filepicker-phone.bat中的-inputFile、-outputFile并运行sign-filepicker-phone.bat即可生成可安装的hap包。
50
51## 使用方法
52
53通过startAbilityForResult拉起FilePicker并获取FilePicker返回的数据,示例代码如下
54
55```js
56// 拉起FilePicker选择文件
57globalThis.context.startAbilityForResult(
58    {
59        bundleName: "com.ohos.filepicker",
60        abilityName: "MainAbility",
61        parameters: {
62            'startMode': 'choose', //choose or save    
63        }
64    },
65    { windowMode: 102 }
66)
67    
68// 拉起FilePicker保存文件
69globalThis.context.startAbilityForResult(
70	{
71        bundleName: "com.ohos.filepicker",
72        abilityName: "MainAbility",
73        parameters: {
74        'startMode': 'save', //choose or save
75        'saveFile': 'test.jpg',
76        }
77    },
78    { windowMode: 102 }
79)
80
81// file picker返回给startAbilityForResult的数据
82var abilityResult = {
83    resultCode: resultCode,
84    want: {
85        parameters: {
86            'startMode': startMode,
87            'result': result
88        }
89    }
90}
91globalThis.context.terminateSelfWithResult(abilityResult)
92```
93
94## 相关仓
95
96系统应用
97
98**applications_filepicker**
99