FileShare

概述

此模块提供文件分享功能,以授权对其他应用程序具有读写权限的公共目录文件的统一资源标识符(URI)。

起始版本: 12

汇总

文件

名称 描述
oh_file_share.h 提供基于URI的文件及目录授予持久化权限、权限激活、权限查询等方法。

结构体

名称 描述
struct FileShare_PolicyErrorResult 授予或使能权限失败的URI策略结果。
struct FileShare_PolicyInfo 需要授予或使能权限URI的策略信息。

类型定义

名称 描述
typedef enum FileShare_OperationMode FileShare_OperationMode URI操作模式枚举值。
typedef enum FileShare_PolicyErrorCode FileShare_PolicyErrorCode 授予或使能权限策略失败的URI对应的错误码枚举值。
typedef struct FileShare_PolicyErrorResult FileShare_PolicyErrorResult 授予或使能权限失败的URI策略结果。
typedef struct FileShare_PolicyInfo FileShare_PolicyInfo 需要授予或使能权限URI的策略信息。

枚举

名称 描述
FileShare_OperationMode {
READ_MODE = 1 << 0,
WRITE_MODE = 1 << 1
}
URI操作模式枚举值。
FileShare_PolicyErrorCode {
PERSISTENCE_FORBIDDEN = 1,
INVALID_MODE = 2,
INVALID_PATH = 3,
PERMISSION_NOT_PERSISTED = 4
}
授予或使能权限策略失败的URI对应的错误码枚举值。

函数

名称 描述
FileManagement_ErrCode OH_FileShare_PersistPermission (const FileShare_PolicyInfo *policies, unsigned int policyNum, FileShare_PolicyErrorResult **result, unsigned int *resultNum) 对所选择的多个文件或目录URI持久化授权。
FileManagement_ErrCode OH_FileShare_RevokePermission (const FileShare_PolicyInfo *policies, unsigned int policyNum, FileShare_PolicyErrorResult **result, unsigned int *resultNum) 对所选择的多个文件或目录URI取消持久化授权。
FileManagement_ErrCode OH_FileShare_ActivatePermission (const FileShare_PolicyInfo *policies, unsigned int policyNum, FileShare_PolicyErrorResult **result, unsigned int *resultNum) 使能多个已经持久化授权的文件或目录。
FileManagement_ErrCode OH_FileShare_DeactivatePermission (const FileShare_PolicyInfo *policies, unsigned int policyNum, FileShare_PolicyErrorResult **result, unsigned int *resultNum) 取消使能持久化授权过的多个文件或目录。
FileManagement_ErrCode OH_FileShare_CheckPersistentPermission (const FileShare_PolicyInfo *policies, unsigned int policyNum, bool **result, unsigned int *resultNum) 校验所选择的多个文件或目录URI的持久化授权。
void OH_FileShare_ReleasePolicyErrorResult (FileShare_PolicyErrorResult *errorResult, unsigned int resultNum) 释放FileShare_PolicyErrorResult指针指向的内存资源。

类型定义说明

FileShare_OperationMode

typedef enum FileShare_OperationMode FileShare_OperationMode

描述

URI操作模式枚举值。

起始版本: 12

FileShare_PolicyErrorCode

typedef enum FileShare_PolicyErrorCode FileShare_PolicyErrorCode

描述

授予或使能权限策略失败的URI对应的错误码枚举值。

起始版本: 12

FileShare_PolicyErrorResult

typedef struct FileShare_PolicyErrorResult FileShare_PolicyErrorResult

描述

授予或使能权限失败的URI策略结果。

起始版本: 12

FileShare_PolicyInfo

typedef struct FileShare_PolicyInfo FileShare_PolicyInfo

描述

需要授予或使能权限URI的策略信息。

起始版本: 12

枚举类型说明

FileShare_OperationMode

enum FileShare_OperationMode

描述

URI操作模式枚举值。

起始版本: 12

枚举值 描述
READ_MODE 读取权限。
WRITE_MODE 写入权限。

FileShare_PolicyErrorCode

enum FileShare_PolicyErrorCode

描述

授予或使能权限策略失败的URI对应的错误码枚举值。

起始版本: 12

枚举值 描述
PERSISTENCE_FORBIDDEN URI禁止被持久化。
INVALID_MODE 无效的模式。
INVALID_PATH 无效路径。
PERMISSION_NOT_PERSISTED 权限没有被持久化。

函数说明

OH_FileShare_ActivatePermission()

FileManagement_ErrCode OH_FileShare_ActivatePermission (const FileShare_PolicyInfo *policies, unsigned int policyNum, FileShare_PolicyErrorResult **result, unsigned int *resultNum )

描述

使能多个已经持久化授权的文件或目录。

起始版本: 12

参数:

名称 描述
policies 一个指向FileShare_PolicyInfo实例的指针。
policyNum FileShare_PolicyInfo实例数组的大小。
result FileShare_PolicyErrorResult数组指针。请使用OH_FileShare_ReleasePolicyErrorResult()进行资源释放。
resultNum FileShare_PolicyErrorResult数组大小。

需要权限:

ohos.permission.FILE_ACCESS_PERSIST

返回:

返回FileManagement模块错误码FileManagement_ErrCodeE_PARAMS 401 - 输入参数无效。可能的原因有:
1.参数policies或参数result或参数resultNum为空指针;
2.参数policyNum值为0或者超过最大长度(500);
3.参数policies中携带的uri为空或者length为0或者uri的长度与length不一致。

E_DEVICE_NOT_SUPPORT 801 - 当前设备类型不支持此接口。
E_PERMISSION 201 - 接口权限校验失败。
E_ENOMEM 13900011 - 分配或者拷贝内存失败。
E_EPERM 13900001 - 操作不被允许。
E_UNKNOWN_ERROR 13900042 - 内部未知错误,调用其它部件返回的除以上错误之外的其它错误。
E_NO_ERROR 0 - 接口调用成功。

OH_FileShare_CheckPersistentPermission()

FileManagement_ErrCode OH_FileShare_CheckPersistentPermission (const FileShare_PolicyInfo *policies, unsigned int policyNum, bool **result, unsigned int *resultNum )

描述

校验所选择的多个文件或目录URI的持久化授权。

起始版本: 12

参数:

名称 描述
policies 一个指向FileShare_PolicyInfo实例的指针。
policyNum FileShare_PolicyInfo实例数组的大小。
result 授权校验结果指针。请引用头文件malloc.h并使用free()进行资源释放。
resultNum 校验结果数组的大小。

需要权限:

ohos.permission.FILE_ACCESS_PERSIST

返回:

返回FileManagement模块错误码FileManagement_ErrCodeE_PARAMS 401 - 输入参数无效。可能的原因有:
1.参数policies或参数result或参数resultNum为空指针;
2.参数policyNum值为0或者超过最大长度(500);
3.参数policies中携带的uri为空或者length为0或者uri的长度与length不一致。

E_DEVICE_NOT_SUPPORT 801 - 当前设备类型不支持此接口。
E_PERMISSION 201 - 接口权限校验失败。
E_ENOMEM 13900011 - 分配或者拷贝内存失败。
E_EPERM 13900001 - 操作不被允许。可能的原因为policies中携带的所有uri都不符合规范或者uri转换出来的路径不存在。
E_UNKNOWN_ERROR 13900042 - 内部未知错误,调用其它部件返回的除以上错误之外的其它错误。
E_NO_ERROR 0 - 接口调用成功。

OH_FileShare_DeactivatePermission()

FileManagement_ErrCode OH_FileShare_DeactivatePermission (const FileShare_PolicyInfo *policies, unsigned int policyNum, FileShare_PolicyErrorResult **result, unsigned int *resultNum )

描述

取消使能持久化授权过的多个文件或目录。

起始版本: 12

参数:

名称 描述
policies 一个指向FileShare_PolicyInfo实例的指针。
policyNum FileShare_PolicyInfo实例数组的大小。
result FileShare_PolicyErrorResult数组指针。请使用OH_FileShare_ReleasePolicyErrorResult()进行资源释放。
resultNum FileShare_PolicyErrorResult数组大小。

需要权限:

ohos.permission.FILE_ACCESS_PERSIST

返回:

返回FileManagement模块错误码FileManagement_ErrCodeE_PARAMS 401 - 输入参数无效。可能的原因有:
1.参数policies或参数result或参数resultNum为空指针;
2.参数policyNum值为0或者超过最大长度(500);
3.参数policies中携带的uri为空或者length为0或者uri的长度与length不一致。

E_DEVICE_NOT_SUPPORT 801 - 当前设备类型不支持此接口。
E_PERMISSION 201 - 接口权限校验失败。
E_ENOMEM 13900011 - 分配或者拷贝内存失败。
E_EPERM 13900001 - 操作不被允许。
E_UNKNOWN_ERROR 13900042 - 内部未知错误,调用其它部件返回的除以上错误之外的其它错误。
E_NO_ERROR 0 - 接口调用成功。

OH_FileShare_PersistPermission()

FileManagement_ErrCode OH_FileShare_PersistPermission (const FileShare_PolicyInfo *policies, unsigned int policyNum, FileShare_PolicyErrorResult **result, unsigned int *resultNum )

描述

对所选择的多个文件或目录URI持久化授权。

起始版本: 12

参数:

名称 描述
policies 一个指向FileShare_PolicyInfo实例的指针。
policyNum FileShare_PolicyInfo实例数组的大小。
result FileShare_PolicyErrorResult数组指针。请使用OH_FileShare_ReleasePolicyErrorResult()进行资源释放。
resultNum FileShare_PolicyErrorResult数组大小。

需要权限:

ohos.permission.FILE_ACCESS_PERSIST

返回:

返回FileManagement模块错误码FileManagement_ErrCodeE_PARAMS 401 - 输入参数无效。可能的原因有:
1.参数policies或参数result或参数resultNum为空指针;
2.参数policyNum值为0或者超过最大长度(500);
3.参数policies中携带的uri为空或者length为0或者uri的长度与length不一致。

E_DEVICE_NOT_SUPPORT 801 - 当前设备类型不支持此接口。
E_PERMISSION 201 - 接口权限校验失败。
E_ENOMEM 13900011 - 分配或者拷贝内存失败。
E_EPERM 13900001 - 操作不被允许。
E_UNKNOWN_ERROR 13900042 - 内部未知错误,调用其它部件返回的除以上错误之外的其它错误。
E_NO_ERROR 0 - 接口调用成功。

OH_FileShare_ReleasePolicyErrorResult()

void OH_FileShare_ReleasePolicyErrorResult (FileShare_PolicyErrorResult *errorResult, unsigned int resultNum )

描述

释放FileShare_PolicyErrorResult指针指向的内存资源。

起始版本: 12

参数:

名称 描述
errorResult 一个指向FileShare_PolicyErrorResult实例的指针。
resultNum FileShare_PolicyErrorResult实例数组的大小。

OH_FileShare_RevokePermission()

FileManagement_ErrCode OH_FileShare_RevokePermission (const FileShare_PolicyInfo *policies, unsigned int policyNum, FileShare_PolicyErrorResult **result, unsigned int *resultNum )

描述 对所选择的多个文件或目录URI取消持久化授权。

起始版本:12

参数:

名称 描述
policies 一个指向FileShare_PolicyInfo实例的指针。
policyNum FileShare_PolicyInfo实例数组的大小。
result FileShare_PolicyErrorResult数组指针。请使用OH_FileShare_ReleasePolicyErrorResult()进行资源释放。
resultNum FileShare_PolicyErrorResult数组大小。

需要权限:

ohos.permission.FILE_ACCESS_PERSIST

返回:

返回FileManagement模块错误码FileManagement_ErrCodeE_PARAMS 401 - 输入参数无效。可能的原因有:
1.参数policies或参数result或参数resultNum为空指针;
2.参数policyNum值为0或者超过最大长度(500);
3.参数policies中携带的uri为空或者length为0或者uri的长度与length不一致。

E_DEVICE_NOT_SUPPORT 801 - 当前设备类型不支持此接口。
E_PERMISSION 201 - 接口权限校验失败。
E_ENOMEM 13900011 - 分配或者拷贝内存失败。
E_EPERM 13900001 - 操作不被允许。
E_UNKNOWN_ERROR 13900042 - 内部未知错误,调用其它部件返回的除以上错误之外的其它错误。
E_NO_ERROR 0 - 接口调用成功。