• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# oh_file_share.h
2<!--Kit: Core File Kit-->
3<!--Subsystem: FileManagement-->
4<!--Owner: @lvzhenjie; @hongjin-li_admin-->
5<!--Designer: @chenxi0605; @JerryH1011-->
6<!--Tester: @leiyuqian-->
7<!--Adviser: @foryourself-->
8
9## 概述
10
11提供基于URI的文件及目录授予持久化权限、权限激活、权限查询等方法。
12
13**库:** libohfileshare.so
14
15**系统能力:** SystemCapability.FileManagement.AppFileService.FolderAuthorization
16
17**起始版本:** 12
18
19**相关模块:** [fileShare](capi-fileshare.md)
20
21## 汇总
22
23### 结构体
24
25| 名称 | typedef关键字 | 描述 |
26| -- | -- | -- |
27| [FileShare_PolicyErrorResult](capi-fileshare-fileshare-policyerrorresult.md) | FileShare_PolicyErrorResult | 授予或使能权限失败的URI策略结果。 |
28| [FileShare_PolicyInfo](capi-fileshare-fileshare-policyinfo.md) | FileShare_PolicyInfo | 需要授予或使能权限URI的策略信息。 |
29
30### 枚举
31
32| 名称 | typedef关键字 | 描述 |
33| -- | -- | -- |
34| [FileShare_OperationMode](#fileshare_operationmode) | FileShare_OperationMode | URI操作模式枚举值。 |
35| [FileShare_PolicyErrorCode](#fileshare_policyerrorcode) | FileShare_PolicyErrorCode | 授予或使能权限策略失败的URI对应的错误码枚举值。 |
36
37### 函数
38
39| 名称 | 描述 |
40| -- | -- |
41| [FileManagement_ErrCode OH_FileShare_PersistPermission(const FileShare_PolicyInfo *policies, unsigned int policyNum,FileShare_PolicyErrorResult **result, unsigned int *resultNum)](#oh_fileshare_persistpermission) | 对所选择的多个文件或目录URI持久化授权。 |
42| [FileManagement_ErrCode OH_FileShare_RevokePermission(const FileShare_PolicyInfo *policies, unsigned int policyNum,FileShare_PolicyErrorResult **result, unsigned int *resultNum)](#oh_fileshare_revokepermission) | 对所选择的多个文件或目录URI取消持久化授权。 |
43| [FileManagement_ErrCode OH_FileShare_ActivatePermission(const FileShare_PolicyInfo *policies, unsigned int policyNum,FileShare_PolicyErrorResult **result, unsigned int *resultNum)](#oh_fileshare_activatepermission) | 使能多个已经持久化授权的文件或目录。 |
44| [FileManagement_ErrCode OH_FileShare_DeactivatePermission(const FileShare_PolicyInfo *policies, unsigned int policyNum,FileShare_PolicyErrorResult **result, unsigned int *resultNum)](#oh_fileshare_deactivatepermission) | 取消使能持久化授权过的多个文件或目录。 |
45| [FileManagement_ErrCode OH_FileShare_CheckPersistentPermission(const FileShare_PolicyInfo *policies, unsigned int policyNum, bool **result, unsigned int *resultNum)](#oh_fileshare_checkpersistentpermission) | 校验所选择的多个文件或目录URI的持久化授权。 |
46| [void OH_FileShare_ReleasePolicyErrorResult(FileShare_PolicyErrorResult *errorResult, unsigned int resultNum)](#oh_fileshare_releasepolicyerrorresult) | 释放FileShare_PolicyErrorResult指针指向的内存资源。 |
47
48## 枚举类型说明
49
50### FileShare_OperationMode
51
52```
53enum FileShare_OperationMode
54```
55
56**描述**
57
58URI操作模式枚举值。
59
60**起始版本:** 12
61
62| 枚举项 | 描述 |
63| -- | -- |
64| READ_MODE = 1 << 0 | 读取权限。 |
65| WRITE_MODE = 1 << 1 | 写入权限。 |
66
67### FileShare_PolicyErrorCode
68
69```
70enum FileShare_PolicyErrorCode
71```
72
73**描述**
74
75授予或使能权限策略失败的URI对应的错误码枚举值。
76
77**起始版本:** 12
78
79| 枚举项 | 描述 |
80| -- | -- |
81| PERSISTENCE_FORBIDDEN = 1 | URI禁止被持久化。 |
82| INVALID_MODE = 2 | 无效的模式。 |
83| INVALID_PATH = 3 | 无效路径。 |
84| PERMISSION_NOT_PERSISTED = 4 | 权限没有被持久化。 |
85
86
87## 函数说明
88
89### OH_FileShare_PersistPermission()
90
91```
92FileManagement_ErrCode OH_FileShare_PersistPermission(const FileShare_PolicyInfo *policies, unsigned int policyNum,FileShare_PolicyErrorResult **result, unsigned int *resultNum)
93```
94
95**描述**
96
97对所选择的多个文件或目录URI持久化授权。
98
99**需要权限:** ohos.permission.FILE_ACCESS_PERSIST
100
101**起始版本:** 12
102
103
104**参数:**
105
106| 参数项 | 描述 |
107| -- | -- |
108| [const FileShare_PolicyInfo](capi-fileshare-fileshare-policyinfo.md) *policies | 一个指向FileShare_PolicyInfo实例的指针。 |
109| unsigned int policyNum | FileShare_PolicyInfo实例数组的大小。 |
110| [FileShare_PolicyErrorResult](capi-fileshare-fileshare-policyerrorresult.md) **result | FileShare_PolicyErrorResult数组指针。请使用OH_FileShare_ReleasePolicyErrorResult()进行资源释放。 |
111| unsigned int *resultNum | FileShare_PolicyErrorResult数组大小。 |
112
113**返回:**
114
115| 类型 | 说明 |
116| -- | -- |
117| [FileManagement_ErrCode](capi-error-code-h.md#filemanagement_errcode) | 返回FileManagement模块错误码[FileManagement_ErrCode](capi-error-code-h.md#filemanagement_errcode)。<br>         E_PARAMS 401 - 输入参数无效。可能的原因有:<br>             1. 参数policies或参数result或参数resultNum为空指针;<br>             2. 参数policyNum值为0或者超过最大长度(500);<br>             3. 参数policies中携带的uri为空或者length为0或者uri的长度与length不一致。<br>         E_DEVICE_NOT_SUPPORT 801 - 当前设备类型不支持此接口。<br>         E_PERMISSION 201 - 接口权限校验失败。<br>         E_ENOMEM 13900011 - 分配或者拷贝内存失败。<br>         E_EPERM 13900001 - 操作不被允许。<br>         E_UNKNOWN_ERROR 13900042 - 内部未知错误,调用其它部件返回的除以上错误之外的其它错误。<br>         E_NO_ERROR 0 - 接口调用成功。 |
118
119### OH_FileShare_RevokePermission()
120
121```
122FileManagement_ErrCode OH_FileShare_RevokePermission(const FileShare_PolicyInfo *policies, unsigned int policyNum,FileShare_PolicyErrorResult **result, unsigned int *resultNum)
123```
124
125**描述**
126
127对所选择的多个文件或目录URI取消持久化授权。
128
129**需要权限:** ohos.permission.FILE_ACCESS_PERSIST
130
131**起始版本:** 12
132
133
134**参数:**
135
136| 参数项 | 描述 |
137| -- | -- |
138| [const FileShare_PolicyInfo](capi-fileshare-fileshare-policyinfo.md) *policies | 一个指向FileShare_PolicyInfo实例的指针。 |
139| unsigned int policyNum | FileShare_PolicyInfo实例数组的大小。 |
140| [FileShare_PolicyErrorResult](capi-fileshare-fileshare-policyerrorresult.md) **result | FileShare_PolicyErrorResult数组指针。请使用OH_FileShare_ReleasePolicyErrorResult()进行资源释放。 |
141| unsigned int *resultNum | FileShare_PolicyErrorResult数组大小。 |
142
143**返回:**
144
145| 类型 | 说明 |
146| -- | -- |
147| [FileManagement_ErrCode](capi-error-code-h.md#filemanagement_errcode) | 返回FileManagement模块错误码[FileManagement_ErrCode](capi-error-code-h.md#filemanagement_errcode)。<br>         E_PARAMS 401 - 输入参数无效。可能的原因有:1. 参数policies或参数result或参数resultNum为空指针;<br>             2. 参数policyNum值为0或者超过最大长度(500);3. 参数policies中携带的uri为空或者length为0或者uri的长度与length不一致。<br>         E_DEVICE_NOT_SUPPORT 801 - 当前设备类型不支持此接口。<br>         E_PERMISSION 201 - 接口权限校验失败。<br>         E_ENOMEM 13900011 - 分配或者拷贝内存失败。<br>         E_EPERM 13900001 - 操作不被允许。<br>         E_UNKNOWN_ERROR 13900042 - 内部未知错误,调用其它部件返回的除以上错误之外的其它错误。<br>         E_NO_ERROR - 接口调用成功。 |
148
149### OH_FileShare_ActivatePermission()
150
151```
152FileManagement_ErrCode OH_FileShare_ActivatePermission(const FileShare_PolicyInfo *policies, unsigned int policyNum,FileShare_PolicyErrorResult **result, unsigned int *resultNum)
153```
154
155**描述**
156
157使能多个已经持久化授权的文件或目录。
158
159**需要权限:** ohos.permission.FILE_ACCESS_PERSIST
160
161**起始版本:** 12
162
163
164**参数:**
165
166| 参数项 | 描述 |
167| -- | -- |
168| [const FileShare_PolicyInfo](capi-fileshare-fileshare-policyinfo.md) *policies | 一个指向FileShare_PolicyInfo实例的指针。 |
169| unsigned int policyNum | FileShare_PolicyInfo实例数组的大小。 |
170| [FileShare_PolicyErrorResult](capi-fileshare-fileshare-policyerrorresult.md) **result | FileShare_PolicyErrorResult数组指针。请使用OH_FileShare_ReleasePolicyErrorResult()进行资源释放。 |
171| unsigned int *resultNum | FileShare_PolicyErrorResult数组大小。 |
172
173**返回:**
174
175| 类型 | 说明 |
176| -- | -- |
177| [FileManagement_ErrCode](capi-error-code-h.md#filemanagement_errcode) | 返回FileManagement模块错误码[FileManagement_ErrCode](capi-error-code-h.md#filemanagement_errcode)。<br>         E_PARAMS 401 - 输入参数无效。可能的原因有:<br>             1. 参数policies或参数result或参数resultNum为空指针;<br>             2. 参数policyNum值为0或者超过最大长度(500);<br>             3. 参数policies中携带的uri为空或者length为0或者uri的长度与length不一致。<br>         E_DEVICE_NOT_SUPPORT 801 - 当前设备类型不支持此接口。<br>         E_PERMISSION 201 - 接口权限校验失败。<br>         E_ENOMEM 13900011 - 分配或者拷贝内存失败。<br>         E_EPERM 13900001 - 操作不被允许。<br>         E_UNKNOWN_ERROR 13900042 - 内部未知错误,调用其它部件返回的除以上错误之外的其它错误。<br>         E_NO_ERROR 0 - 接口调用成功。 |
178
179### OH_FileShare_DeactivatePermission()
180
181```
182FileManagement_ErrCode OH_FileShare_DeactivatePermission(const FileShare_PolicyInfo *policies, unsigned int policyNum,FileShare_PolicyErrorResult **result, unsigned int *resultNum)
183```
184
185**描述**
186
187取消使能持久化授权过的多个文件或目录。
188
189**需要权限:** ohos.permission.FILE_ACCESS_PERSIST
190
191**起始版本:** 12
192
193
194**参数:**
195
196| 参数项 | 描述 |
197| -- | -- |
198| [const FileShare_PolicyInfo](capi-fileshare-fileshare-policyinfo.md) *policies | 一个指向FileShare_PolicyInfo实例的指针。 |
199| unsigned int policyNum | FileShare_PolicyInfo实例数组的大小。 |
200| [FileShare_PolicyErrorResult](capi-fileshare-fileshare-policyerrorresult.md) **result | FileShare_PolicyErrorResult数组指针。请使用OH_FileShare_ReleasePolicyErrorResult()进行资源释放。 |
201| unsigned int *resultNum | FileShare_PolicyErrorResult数组大小。 |
202
203**返回:**
204
205| 类型 | 说明 |
206| -- | -- |
207| [FileManagement_ErrCode](capi-error-code-h.md#filemanagement_errcode) | 返回FileManagement模块错误码[FileManagement_ErrCode](capi-error-code-h.md#filemanagement_errcode)。<br>         E_PARAMS 401 - 输入参数无效。可能的原因有:<br>             1. 参数policies或参数result或参数resultNum为空指针;<br>             2. 参数policyNum值为0或者超过最大长度(500);<br>             3. 参数policies中携带的uri为空或者length为0或者uri的长度与length不一致。<br>         E_DEVICE_NOT_SUPPORT 801 - 当前设备类型不支持此接口。<br>         E_PERMISSION 201 - 接口权限校验失败。<br>          E_ENOMEM 13900011 - 分配或者拷贝内存失败。<br>         E_EPERM 13900001 - 操作不被允许。<br>         E_UNKNOWN_ERROR 13900042 - 内部未知错误,调用其它部件返回的除以上错误之外的其它错误。<br>         E_NO_ERROR - 接口调用成功。 |
208
209### OH_FileShare_CheckPersistentPermission()
210
211```
212FileManagement_ErrCode OH_FileShare_CheckPersistentPermission(const FileShare_PolicyInfo *policies, unsigned int policyNum, bool **result, unsigned int *resultNum)
213```
214
215**描述**
216
217校验所选择的多个文件或目录URI的持久化授权。
218
219**需要权限:** ohos.permission.FILE_ACCESS_PERSIST
220
221**起始版本:** 12
222
223
224**参数:**
225
226| 参数项 | 描述 |
227| -- | -- |
228| [const FileShare_PolicyInfo](capi-fileshare-fileshare-policyinfo.md) *policies | 一个指向FileShare_PolicyInfo实例的指针。 |
229| unsigned int policyNum | FileShare_PolicyInfo实例数组的大小。 |
230| bool **result | 授权校验结果指针。请引用头文件malloc.h并使用free()进行资源释放。 |
231| unsigned int *resultNum | 校验结果数组的大小。 |
232
233**返回:**
234
235| 类型 | 说明 |
236| -- | -- |
237| [FileManagement_ErrCode](capi-error-code-h.md#filemanagement_errcode) | 返回FileManagement模块错误码[FileManagement_ErrCode](capi-error-code-h.md#filemanagement_errcode)。<br>         E_PARAMS 401 - 输入参数无效。可能的原因有:<br>             1. 参数policies或参数result或参数resultNum为空指针;<br>             2. 参数policyNum值为0或者超过最大长度(500);<br>             3. 参数policies中携带的uri为空或者length为0或者uri的长度与length不一致。<br>         E_DEVICE_NOT_SUPPORT 801 - 当前设备类型不支持此接口。<br>         E_PERMISSION 201 - 接口权限校验失败。<br>         E_ENOMEM 13900011 - 分配或者拷贝内存失败。<br>         E_EPERM 13900001 - 操作不被允许。可能的原因为policies中携带的所有uri都不符合规范或者uri转换出来的路径不存在。<br>         E_UNKNOWN_ERROR 13900042 - 内部未知错误,调用其它部件返回的除以上错误之外的其它错误。<br>         E_NO_ERROR 0 - 接口调用成功。 |
238
239### OH_FileShare_ReleasePolicyErrorResult()
240
241```
242void OH_FileShare_ReleasePolicyErrorResult(FileShare_PolicyErrorResult *errorResult, unsigned int resultNum)
243```
244
245**描述**
246
247释放FileShare_PolicyErrorResult指针指向的内存资源。
248
249**起始版本:** 12
250
251
252**参数:**
253
254| 参数项 | 描述 |
255| -- | -- |
256| [FileShare_PolicyErrorResult](capi-fileshare-fileshare-policyerrorresult.md) *errorResult | 一个指向FileShare_PolicyErrorResult实例的指针。 |
257| unsigned int resultNum | FileShare_PolicyErrorResult实例数组的大小。 |
258
259
260