1# FileShare
2
3
4## 概述
5
6此模块提供文件分享功能,以授权对其他应用程序具有读写权限的公共目录文件的统一资源标识符(URI)。
7
8**起始版本:** 12
9
10
11## 汇总
12
13
14### 文件
15
16| 名称 | 描述 |
17| -------- | -------- |
18| [oh_file_share.h](oh__file__share_8h.md) | 提供基于URI的文件及目录授于持久化权限、权限激活、权限查询等方法。 |
19
20
21### 结构体
22
23| 名称 | 描述 |
24| -------- | -------- |
25| struct  [FileShare_PolicyErrorResult](_file_share___policy_error_result.md) | 授予或使能权限失败的URI策略结果。 |
26| struct  [FileShare_PolicyInfo](_file_share___policy_info.md) | 需要授予或使能权限URI的策略信息。 |
27
28
29### 类型定义
30
31| 名称 | 描述 |
32| -------- | -------- |
33| typedef enum [FileShare_OperationMode](#fileshare_operationmode-1) [FileShare_OperationMode](#fileshare_operationmode) | URI操作模式枚举值。 |
34| typedef enum [FileShare_PolicyErrorCode](#fileshare_policyerrorcode-1) [FileShare_PolicyErrorCode](#fileshare_policyerrorcode) | 授予或使能权限策略失败的URI对应的错误码枚举值。 |
35| typedef struct [FileShare_PolicyErrorResult](_file_share___policy_error_result.md) [FileShare_PolicyErrorResult](#fileshare_policyerrorresult) | 授予或使能权限失败的URI策略结果。 |
36| typedef struct [FileShare_PolicyInfo](_file_share___policy_info.md) [FileShare_PolicyInfo](#fileshare_policyinfo) | 需要授予或使能权限URI的策略信息。 |
37
38
39### 枚举
40
41| 名称 | 描述 |
42| -------- | -------- |
43| [FileShare_OperationMode](#fileshare_operationmode) {<br/>READ_MODE = 1 &lt;&lt; 0,<br/>WRITE_MODE = 1 &lt;&lt; 1<br/>} | URI操作模式枚举值。 |
44| [FileShare_PolicyErrorCode](#fileshare_policyerrorcode) {<br/>PERSISTENCE_FORBIDDEN = 1,<br/>INVALID_MODE = 2,<br/>INVALID_PATH = 3,<br/>PERMISSION_NOT_PERSISTED = 4<br/>} | 授予或使能权限策略失败的URI对应的错误码枚举值。 |
45
46
47### 函数
48
49| 名称 | 描述 |
50| -------- | -------- |
51| [FileManagement_ErrCode](_file_i_o.md#filemanagement_errcode) [OH_FileShare_PersistPermission](#oh_fileshare_persistpermission) (const [FileShare_PolicyInfo](_file_share___policy_info.md) \*policies, unsigned int policyNum, [FileShare_PolicyErrorResult](_file_share___policy_error_result.md) \*\*result, unsigned int \*resultNum) | 对所选择的多个文件或目录URI持久化授权。 |
52| [FileManagement_ErrCode](_file_i_o.md#filemanagement_errcode) [OH_FileShare_RevokePermission](#oh_fileshare_revokepermission) (const [FileShare_PolicyInfo](_file_share___policy_info.md) \*policies, unsigned int policyNum, [FileShare_PolicyErrorResult](_file_share___policy_error_result.md) \*\*result, unsigned int \*resultNum) | 对所选择的多个文件或目录uri取消持久化授权。 |
53| [FileManagement_ErrCode](_file_i_o.md#filemanagement_errcode) [OH_FileShare_ActivatePermission](#oh_fileshare_activatepermission) (const [FileShare_PolicyInfo](_file_share___policy_info.md) \*policies, unsigned int policyNum, [FileShare_PolicyErrorResult](_file_share___policy_error_result.md) \*\*result, unsigned int \*resultNum) | 使能多个已经持久化授权的文件或目录。 |
54| [FileManagement_ErrCode](_file_i_o.md#filemanagement_errcode) [OH_FileShare_DeactivatePermission](#oh_fileshare_deactivatepermission) (const [FileShare_PolicyInfo](_file_share___policy_info.md) \*policies, unsigned int policyNum, [FileShare_PolicyErrorResult](_file_share___policy_error_result.md) \*\*result, unsigned int \*resultNum) | 取消使能持久化授权过的多个文件或目录。 |
55| [FileManagement_ErrCode](_file_i_o.md#filemanagement_errcode) [OH_FileShare_CheckPersistentPermission](#oh_fileshare_checkpersistentpermission) (const [FileShare_PolicyInfo](_file_share___policy_info.md) \*policies, unsigned int policyNum, bool \*\*result, unsigned int \*resultNum) | 校验所选择的多个文件或目录URI的持久化授权。 |
56| void [OH_FileShare_ReleasePolicyErrorResult](#oh_fileshare_releasepolicyerrorresult) ([FileShare_PolicyErrorResult](_file_share___policy_error_result.md) \*errorResult, unsigned int resultNum) | 释放FileShare_PolicyErrorResult指针指向的内存资源。 |
57
58
59## 类型定义说明
60
61
62### FileShare_OperationMode
63
64```
65typedef enum FileShare_OperationMode FileShare_OperationMode
66```
67
68**描述**
69
70URI操作模式枚举值。
71
72**起始版本:** 12
73
74
75### FileShare_PolicyErrorCode
76
77```
78typedef enum FileShare_PolicyErrorCode FileShare_PolicyErrorCode
79```
80
81**描述**
82
83授予或使能权限策略失败的URI对应的错误码枚举值。
84
85**起始版本:** 12
86
87
88### FileShare_PolicyErrorResult
89
90```
91typedef struct FileShare_PolicyErrorResult FileShare_PolicyErrorResult
92```
93
94**描述**
95
96授予或使能权限失败的URI策略结果。
97
98**起始版本:** 12
99
100
101### FileShare_PolicyInfo
102
103```
104typedef struct FileShare_PolicyInfo FileShare_PolicyInfo
105```
106
107**描述**
108
109需要授予或使能权限URI的策略信息。
110
111**起始版本:** 12
112
113
114## 枚举类型说明
115
116
117### FileShare_OperationMode
118
119```
120enum FileShare_OperationMode
121```
122
123**描述**
124
125URI操作模式枚举值。
126
127**起始版本:** 12
128
129| 枚举值 | 描述 |
130| -------- | -------- |
131| READ_MODE | 读取权限。 |
132| WRITE_MODE | 写入权限。 |
133
134
135### FileShare_PolicyErrorCode
136
137```
138enum FileShare_PolicyErrorCode
139```
140
141**描述**
142
143授予或使能权限策略失败的URI对应的错误码枚举值。
144
145**起始版本:** 12
146
147| 枚举值 | 描述 |
148| -------- | -------- |
149| PERSISTENCE_FORBIDDEN | URI禁止被持久化。 |
150| INVALID_MODE | 无效的模式。 |
151| INVALID_PATH | 无效路径。 |
152| PERMISSION_NOT_PERSISTED | 权限没有被持久化。 |
153
154
155## 函数说明
156
157
158### OH_FileShare_ActivatePermission()
159
160```
161FileManagement_ErrCode OH_FileShare_ActivatePermission (const FileShare_PolicyInfo *policies, unsigned int policyNum, FileShare_PolicyErrorResult **result, unsigned int *resultNum )
162```
163
164**描述**
165
166使能多个已经持久化授权的文件或目录。
167
168**起始版本:** 12
169
170**参数:**
171
172| 名称 | 描述 |
173| -------- | -------- |
174| policies | 一个指向FileShare_PolicyInfo实例的指针。 |
175| policyNum | FileShare_PolicyInfo实例数组的大小。 |
176| result | FileShare_PolicyErrorResult数组指针. 请使用OH_FileShare_ReleasePolicyErrorResult()进行资源释放。 |
177| resultNum | FileShare_PolicyErrorResult数组大小。 |
178
179**需要权限:**
180
181ohos.permission.FILE_ACCESS_PERSIST
182
183**返回:**
184
185返回FileManageMent模块错误码[FileManagement_ErrCode](_file_i_o.md#filemanagement_errcode-1)。
186
187
188### OH_FileShare_CheckPersistentPermission()
189
190```
191FileManagement_ErrCode OH_FileShare_CheckPersistentPermission (const FileShare_PolicyInfo *policies, unsigned int policyNum, bool **result, unsigned int *resultNum )
192```
193
194**描述**
195
196校验所选择的多个文件或目录URI的持久化授权。
197
198**起始版本:** 12
199
200**参数:**
201
202| 名称 | 描述 |
203| -------- | -------- |
204| policies | 一个指向FileShare_PolicyInfo实例的指针。 |
205| policyNum | FileShare_PolicyInfo实例数组的大小。 |
206| result | 授权校验结果指针。请引用头文件malloc.h并使用free()进行资源释放。 |
207| resultNum | 校验结果数组的大小. |
208
209**需要权限:**
210
211ohos.permission.FILE_ACCESS_PERSIST
212
213**返回:**
214
215返回FileManageMent模块错误码[FileManagement_ErrCode](_file_i_o.md#filemanagement_errcode-1)。
216
217
218### OH_FileShare_DeactivatePermission()
219
220```
221FileManagement_ErrCode OH_FileShare_DeactivatePermission (const FileShare_PolicyInfo *policies, unsigned int policyNum, FileShare_PolicyErrorResult **result, unsigned int *resultNum )
222```
223
224**描述**
225
226取消使能持久化授权过的多个文件或目录。
227
228**起始版本:** 12
229
230**参数:**
231
232| 名称 | 描述 |
233| -------- | -------- |
234| policies | 一个指向FileShare_PolicyInfo实例的指针。 |
235| policyNum | FileShare_PolicyInfo实例数组的大小。 |
236| result | FileShare_PolicyErrorResult数组指针. 请使用OH_FileShare_ReleasePolicyErrorResult()进行资源释放。 |
237| resultNum | FileShare_PolicyErrorResult数组大小。 |
238
239**需要权限:**
240
241ohos.permission.FILE_ACCESS_PERSIST
242
243**返回:**
244
245返回FileManageMent模块错误码[FileManagement_ErrCode](_file_i_o.md#filemanagement_errcode-1)。
246
247
248### OH_FileShare_PersistPermission()
249
250```
251FileManagement_ErrCode OH_FileShare_PersistPermission (const FileShare_PolicyInfo *policies, unsigned int policyNum, FileShare_PolicyErrorResult **result, unsigned int *resultNum )
252```
253
254**描述**
255
256对所选择的多个文件或目录URI持久化授权。
257
258**起始版本:** 12
259
260**参数:**
261
262| 名称 | 描述 |
263| -------- | -------- |
264| policies | 一个指向FileShare_PolicyInfo实例的指针。 |
265| policyNum | FileShare_PolicyInfo实例数组的大小。 |
266| result | FileShare_PolicyErrorResult数组指针. 请使用OH_FileShare_ReleasePolicyErrorResult()进行资源释放。 |
267| resultNum | FileShare_PolicyErrorResult数组大小。 |
268
269**需要权限:**
270
271ohos.permission.FILE_ACCESS_PERSIST
272
273**返回:**
274
275返回FileManageMent模块错误码[FileManagement_ErrCode](_file_i_o.md#filemanagement_errcode-1)。
276
277
278### OH_FileShare_ReleasePolicyErrorResult()
279
280```
281void OH_FileShare_ReleasePolicyErrorResult (FileShare_PolicyErrorResult *errorResult, unsigned int resultNum )
282```
283
284**描述**
285
286释放FileShare_PolicyErrorResult指针指向的内存资源。
287
288**起始版本:** 12
289
290**参数:**
291
292| 名称 | 描述 |
293| -------- | -------- |
294| errorResult | 一个指向FileShare_PolicyErrorResult实例的指针。 |
295| resultNum | FileShare_PolicyErrorResult实例数组的大小。 |
296
297
298### OH_FileShare_RevokePermission()
299
300```
301FileManagement_ErrCode OH_FileShare_RevokePermission (const FileShare_PolicyInfo *policies, unsigned int policyNum, FileShare_PolicyErrorResult **result, unsigned int *resultNum )
302```
303
304**描述**
305
306对所选择的多个文件或目录uri取消持久化授权。
307
308**起始版本:** 12
309
310**参数:**
311
312| 名称 | 描述 |
313| -------- | -------- |
314| policies | 一个指向FileShare_PolicyInfo实例的指针。 |
315| policyNum | FileShare_PolicyInfo实例数组的大小。 |
316| result | FileShare_PolicyErrorResult数组指针. 请使用OH_FileShare_ReleasePolicyErrorResult()进行资源释放。 |
317| resultNum | FileShare_PolicyErrorResult数组大小。 |
318
319**需要权限:**
320
321ohos.permission.FILE_ACCESS_PERSIST
322
323**返回:**
324
325返回FileManageMent模块错误码[FileManagement_ErrCode](_file_i_o.md#filemanagement_errcode-1)。
326