• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Fileuri
2
3
4## 概述
5
6uri作为文件跨应用分享过程中的统一资源标识(File Uniform Resource Identifier),支持uri的生成、uri的相关信息获取(path、文件名称等)、格式的校验;不建议应用将uri进行固化保存,转换规则优化会导致应用保存的uri不可用,建议应用使用接口实时生成。
7
8**系统能力**:SystemCapability.FileManagement.AppFileService
9
10**起始版本**:12
11
12
13## 汇总
14
15
16### 文件
17
18| 名称 | 描述 |
19| -------- |---------|
20| [oh_file_uri.h](oh__file__uri_8h.md) | 对外提供在分享过程中将uri转分享路径path、应用自己的沙箱路径在分享时生成对应应用自己的uri、获取uri所在目录路径的uri等接口能力,方便应用对文件分享业务中uri的访问。 |
21
22
23### 函数
24
25| 接口名称 | 描述 |
26| -------- |--------|
27| FileManagement_ErrCode OH_FileUri_GetUriFromPath(const char *path, unsigned int length, char **result)| 通过传入的路径path生成应用自己的uri(不支持媒体类型uri的获取);将path转uri时,路径中的中文及非数字字母的特殊字符将会被编译成对应的ASCII码,拼接在uri中。|
28| FileManagement_ErrCode OH_FileUri_GetPathFromUri(const char *uri, unsigned int length, char **result) | 将uri转换成对应的沙箱路径path。 1、uri转path过程中会将uri中存在的ASCII码进行解码后拼接在原处,非系统接口生成的uri中可能存在ASCII码解析范围之外的字符,导致字符串无法正常拼接;2、转换处理为系统约定的字符串替换规则(规则随系统演进可能会发生变化),转换过程中不进行路径校验操作,无法保证转换结果的一定可以访问。 |
29| FileManagement_ErrCode OH_FileUri_GetFullDirectoryUri(const char *uri, unsigned int length, char **result) | 获取所在路径uri。uri指向文件则返回所在路径的uri,uri指向目录则不处理直接返回原串;uri指向的文件不存在或属性获取失败则返回空串。|
30| bool OH_FileUri_IsValidUri(const char *uri, unsigned int length) | 判断传入的uri的格式是否正确。仅校验uri是否满足系统定义的格式规范,不校验uri的有效性。|
31| FileManagement_ErrCode OH_FileUri_GetFileName(const char *uri, unsigned int length, char **result) | 通过传入的uri获取到对应的文件名称。(如果存在ASCII码将会被解码处理后拼接在原处)。|
32## 函数说明
33
34
35### OH_FileUri_GetFullDirectoryUri()
36
37```
38FileManagement_ErrCode OH_FileUri_GetFullDirectoryUri (const char * uri, unsigned int length, char ** result )
39```
40
41**描述**
42
43获取所在路径uri。uri指向文件则返回所在路径的uri,uri指向目录则不处理直接返回原串;uri指向的文件不存在或属性获取失败则返回空串。
44
45**系统能力**:SystemCapability.FileManagement.AppFileService
46
47**起始版本**:12
48
49**参数:**
50
51| 名称 | 描述 |
52| -------- | -------- |
53| uri | 表示要获取目录的uri的原始uri。 |
54| length | 表示原始uri的字节长度。 |
55| result | 表示获取到的目录URi, 需要使用standard library标准库的free()方法释放申请的资源。 |
56
57**返回**:
58
59返回特定的错误码值,详细信息可以查看[FileManagement_ErrCode](_file_i_o.md#filemanagement_errcode)。
60
61
62### OH_FileUri_GetPathFromUri()
63
64```
65FileManagement_ErrCode OH_FileUri_GetPathFromUri (const char * uri, unsigned int length, char ** result )
66```
67
68**描述**
69
70文件分享业务中通过uri获取应用分享地方的沙箱路径path。 1、uri转path过程中会将uri中存在的ASCII码进行解码后拼接在原处,非系统接口生成的uri中可能存在ASCII码解析范围之外的字符,导致字符串无法正常拼接;2、转换处理为系统约定的字符串替换规则(规则随系统演进可能会发生变化),转换过程中不进行路径校验操作,无法保证转换结果的一定可以访问。
71
72**系统能力**:SystemCapability.FileManagement.AppFileService
73
74**起始版本**:12
75
76**参数:**
77
78| 名称 | 描述 |
79| -------- | -------- |
80| uri | 表示要转换的uri。 |
81| length | 表示要转换uri的字节长度。 |
82| result | 表示转换后的路径path. 需要使用standard library标准库的free()方法释放申请的资源。 |
83
84**返回**:
85
86返回特定的错误码值,详细信息可以查看[FileManagement_ErrCode](_file_i_o.md#filemanagement_errcode)。
87
88
89### OH_FileUri_GetUriFromPath()
90
91```
92FileManagement_ErrCode OH_FileUri_GetUriFromPath (const char * path, unsigned int length, char ** result )
93```
94
95**描述**
96
97通过传入的路径path生成应用自己的uri(不支持媒体类型uri的获取);将path转uri时,路径中的中文及非数字字母的特殊字符将会被编译成对应的ASCII码,拼接在uri中。
98
99**系统能力**:SystemCapability.FileManagement.AppFileService
100
101**起始版本**:12
102
103**参数:**
104
105| 名称 | 描述 |
106| -------- | -------- |
107| path | 表示要转换的路径。 |
108| length | 表示要转换路径的字节长度。 |
109| result | 表示转换后的uri, 需要使用standard library标准库的free()方法释放申请的资源。 |
110
111**返回**:
112
113返回特定的错误码值,详细信息可以查看[FileManagement_ErrCode](_file_i_o.md#filemanagement_errcode)。
114
115
116### OH_FileUri_IsValidUri()
117
118```
119bool OH_FileUri_IsValidUri (const char * uri, unsigned int length )
120```
121
122**描述**
123
124判断传入的uri的格式是否正确。仅校验uri的基础格式,不校验uri的有效性。
125
126**系统能力**:SystemCapability.FileManagement.AppFileService
127
128**起始版本**:12
129
130**参数:**
131
132| 名称 | 描述 |
133| -------- | -------- |
134| uri | 表示需要校验的uri。 |
135| length | 需要校验uri的字节长度。 |
136
137**返回**:
138
139返回true表示传入uri是有效的uri;返回false表示传入的uri是无效的uri。
140
141### OH_FileUri_GetFileName()
142
143```
144FileManagement_ErrCode OH_FileUri_GetFileName (const char * uri, unsigned int length, char ** result )
145```
146
147**描述**
148
149通过传入的uri获取到对应的文件名称。(如果文件名中存在ASCII码将会被解码处理后拼接在原处)。
150
151**系统能力**:SystemCapability.FileManagement.AppFileService
152
153**起始版本**:13
154
155**参数:**
156
157| 名称 | 描述 |
158| -------- |--------|
159| uri | 表示传入的uri。|
160| length | 表示传入uri的字节长度。|
161| result | 表示获取到的文件名称. 需要使用standard library标准库的free()方法释放申请的资源。 |
162
163**返回**:
164
165返回特定的错误码值,详细信息可以查看[FileManagement_ErrCode](_file_i_o.md#filemanagement_errcode)。