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 << 0,<br/>WRITE_MODE = 1 << 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