• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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**E_PARAMS** 401 - 输入参数无效。可能的原因有:
1871.参数policies或参数result或参数resultNum为空指针;
1882.参数policyNum值为0或者超过最大长度(500);
1893.参数policies中携带的uri为空或者length为0或者uri的长度与length不一致。
190
191**E_DEVICE_NOT_SUPPORT** 801 - 当前设备类型不支持此接口。
192**E_PERMISSION** 201 - 接口权限校验失败。
193**E_ENOMEM** 13900011 - 分配或者拷贝内存失败。
194**E_EPERM** 13900001 - 操作不被允许。
195**E_UNKNOWN_ERROR** 13900042 - 内部未知错误,调用其它部件返回的除以上错误之外的其它错误。
196**E_NO_ERROR** 0 - 接口调用成功。
197
198### OH_FileShare_CheckPersistentPermission()
199
200```
201FileManagement_ErrCode OH_FileShare_CheckPersistentPermission (const FileShare_PolicyInfo *policies, unsigned int policyNum, bool **result, unsigned int *resultNum )
202```
203
204**描述**
205
206校验所选择的多个文件或目录URI的持久化授权。
207
208**起始版本:** 12
209
210**参数:**
211
212| 名称 | 描述 |
213| -------- | -------- |
214| policies | 一个指向FileShare_PolicyInfo实例的指针。 |
215| policyNum | FileShare_PolicyInfo实例数组的大小。 |
216| result | 授权校验结果指针。请引用头文件malloc.h并使用free()进行资源释放。 |
217| resultNum | 校验结果数组的大小。|
218
219**需要权限:**
220
221ohos.permission.FILE_ACCESS_PERSIST
222
223**返回:**
224
225返回FileManagement模块错误码[FileManagement_ErrCode](_file_i_o.md#filemanagement_errcode-1)。
226**E_PARAMS** 401 - 输入参数无效。可能的原因有:
2271.参数policies或参数result或参数resultNum为空指针;
2282.参数policyNum值为0或者超过最大长度(500);
2293.参数policies中携带的uri为空或者length为0或者uri的长度与length不一致。
230
231**E_DEVICE_NOT_SUPPORT** 801 - 当前设备类型不支持此接口。
232**E_PERMISSION** 201 - 接口权限校验失败。
233**E_ENOMEM** 13900011 - 分配或者拷贝内存失败。
234**E_EPERM** 13900001 - 操作不被允许。可能的原因为policies中携带的所有uri都不符合规范或者uri转换出来的路径不存在。
235**E_UNKNOWN_ERROR** 13900042 - 内部未知错误,调用其它部件返回的除以上错误之外的其它错误。
236**E_NO_ERROR** 0 - 接口调用成功。
237
238
239### OH_FileShare_DeactivatePermission()
240
241```
242FileManagement_ErrCode OH_FileShare_DeactivatePermission (const FileShare_PolicyInfo *policies, unsigned int policyNum, FileShare_PolicyErrorResult **result, unsigned int *resultNum )
243```
244
245**描述**
246
247取消使能持久化授权过的多个文件或目录。
248
249**起始版本:** 12
250
251**参数:**
252
253| 名称 | 描述 |
254| -------- | -------- |
255| policies | 一个指向FileShare_PolicyInfo实例的指针。 |
256| policyNum | FileShare_PolicyInfo实例数组的大小。 |
257| result | FileShare_PolicyErrorResult数组指针。请使用OH_FileShare_ReleasePolicyErrorResult()进行资源释放。 |
258| resultNum | FileShare_PolicyErrorResult数组大小。 |
259
260**需要权限:**
261
262ohos.permission.FILE_ACCESS_PERSIST
263
264**返回:**
265
266返回FileManagement模块错误码[FileManagement_ErrCode](_file_i_o.md#filemanagement_errcode-1)。
267**E_PARAMS** 401 - 输入参数无效。可能的原因有:
2681.参数policies或参数result或参数resultNum为空指针;
2692.参数policyNum值为0或者超过最大长度(500);
2703.参数policies中携带的uri为空或者length为0或者uri的长度与length不一致。
271
272**E_DEVICE_NOT_SUPPORT** 801 - 当前设备类型不支持此接口。
273**E_PERMISSION** 201 - 接口权限校验失败。
274**E_ENOMEM** 13900011 - 分配或者拷贝内存失败。
275**E_EPERM** 13900001 - 操作不被允许。
276**E_UNKNOWN_ERROR** 13900042 - 内部未知错误,调用其它部件返回的除以上错误之外的其它错误。
277**E_NO_ERROR** 0 - 接口调用成功。
278
279
280### OH_FileShare_PersistPermission()
281
282```
283FileManagement_ErrCode OH_FileShare_PersistPermission (const FileShare_PolicyInfo *policies, unsigned int policyNum, FileShare_PolicyErrorResult **result, unsigned int *resultNum )
284```
285
286**描述**
287
288对所选择的多个文件或目录URI持久化授权。
289
290**起始版本:** 12
291
292**参数:**
293
294| 名称 | 描述 |
295| -------- | -------- |
296| policies | 一个指向FileShare_PolicyInfo实例的指针。 |
297| policyNum | FileShare_PolicyInfo实例数组的大小。 |
298| result | FileShare_PolicyErrorResult数组指针。请使用OH_FileShare_ReleasePolicyErrorResult()进行资源释放。 |
299| resultNum | FileShare_PolicyErrorResult数组大小。 |
300
301**需要权限:**
302
303ohos.permission.FILE_ACCESS_PERSIST
304
305**返回:**
306
307返回FileManagement模块错误码[FileManagement_ErrCode](_file_i_o.md#filemanagement_errcode-1)。
308**E_PARAMS** 401 - 输入参数无效。可能的原因有:
3091.参数policies或参数result或参数resultNum为空指针;
3102.参数policyNum值为0或者超过最大长度(500);
3113.参数policies中携带的uri为空或者length为0或者uri的长度与length不一致。
312
313**E_DEVICE_NOT_SUPPORT** 801 - 当前设备类型不支持此接口。
314**E_PERMISSION** 201 - 接口权限校验失败。
315**E_ENOMEM** 13900011 - 分配或者拷贝内存失败。
316**E_EPERM** 13900001 - 操作不被允许。
317**E_UNKNOWN_ERROR** 13900042 - 内部未知错误,调用其它部件返回的除以上错误之外的其它错误。
318**E_NO_ERROR** 0 - 接口调用成功。
319
320
321### OH_FileShare_ReleasePolicyErrorResult()
322
323```
324void OH_FileShare_ReleasePolicyErrorResult (FileShare_PolicyErrorResult *errorResult, unsigned int resultNum )
325```
326
327**描述**
328
329释放FileShare_PolicyErrorResult指针指向的内存资源。
330
331**起始版本:** 12
332
333**参数:**
334
335| 名称 | 描述 |
336| -------- | -------- |
337| errorResult | 一个指向FileShare_PolicyErrorResult实例的指针。 |
338| resultNum | FileShare_PolicyErrorResult实例数组的大小。 |
339
340
341### OH_FileShare_RevokePermission()
342
343```
344FileManagement_ErrCode OH_FileShare_RevokePermission (const FileShare_PolicyInfo *policies, unsigned int policyNum, FileShare_PolicyErrorResult **result, unsigned int *resultNum )
345```
346
347**描述**
348对所选择的多个文件或目录URI取消持久化授权。
349
350**起始版本**:12
351
352**参数:**
353
354| 名称 | 描述 |
355| -------- | -------- |
356| policies | 一个指向FileShare_PolicyInfo实例的指针。 |
357| policyNum | FileShare_PolicyInfo实例数组的大小。 |
358| result | FileShare_PolicyErrorResult数组指针。请使用OH_FileShare_ReleasePolicyErrorResult()进行资源释放。 |
359| resultNum | FileShare_PolicyErrorResult数组大小。 |
360
361**需要权限:**
362
363ohos.permission.FILE_ACCESS_PERSIST
364
365**返回:**
366
367返回FileManagement模块错误码[FileManagement_ErrCode](_file_i_o.md#filemanagement_errcode-1)。
368**E_PARAMS** 401 - 输入参数无效。可能的原因有:
3691.参数policies或参数result或参数resultNum为空指针;
3702.参数policyNum值为0或者超过最大长度(500);
3713.参数policies中携带的uri为空或者length为0或者uri的长度与length不一致。
372
373**E_DEVICE_NOT_SUPPORT** 801 - 当前设备类型不支持此接口。
374**E_PERMISSION** 201 - 接口权限校验失败。
375**E_ENOMEM** 13900011 - 分配或者拷贝内存失败。
376**E_EPERM** 13900001 - 操作不被允许。
377**E_UNKNOWN_ERROR** 13900042 - 内部未知错误,调用其它部件返回的除以上错误之外的其它错误。
378**E_NO_ERROR** 0 - 接口调用成功。
379