• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.file.securityLabel (数据标签)
2
3该模块提供文件数据安全等级的相关功能:向应用程序提供查询、设置文件数据安全等级的JS接口。
4
5> **说明:**
6>
7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```js
12import securityLabel from '@ohos.file.securityLabel';
13```
14
15## 使用说明
16
17使用该功能模块对文件/目录进行操作前,需要先获取其应用沙箱路径,获取方式及其接口用法请参考:
18
19**Stage模型**
20
21 ```js
22import UIAbility from '@ohos.app.ability.UIAbility';
23
24export default class EntryAbility extends UIAbility {
25    onWindowStageCreate(windowStage) {
26        let context = this.context;
27        let pathDir = context.filesDir;
28    }
29}
30 ```
31
32**FA模型**
33
34 ```js
35 import featureAbility from '@ohos.ability.featureAbility';
36
37 let context = featureAbility.getContext();
38 context.getFilesDir().then((data) => {
39      let pathDir = data;
40 })
41 ```
42
43FA模型context的具体获取方法参见[FA模型](js-apis-inner-app-context.md#Context模块)。
44
45## securityLabel.setSecurityLabel
46
47setSecurityLabel(path:string, type:DataLevel):Promise<void>
48
49以异步方法设置数据标签,以promise形式返回结果。
50
51**系统能力**:SystemCapability.FileManagement.File.FileIO
52
53**参数:**
54
55| 参数名    | 类型       | 必填 | 说明                                         |
56| --------- | ------    | ---- | -------------------------------------------- |
57| path      | string    | 是   | 文件路径                                     |
58| type      | DataLevel | 是   | 文件等级属性,只支持"s0","s1","s2","s3","s4" |
59
60**返回值:**
61
62  | 类型                | 说明             |
63  | ------------------- | ---------------- |
64  | Promise<void> | Promise实例,用于异步获取结果。本调用将返回空值。|
65
66**错误码:**
67
68以下错误码的详细介绍请参见[基础文件IO错误码](../errorcodes/errorcode-filemanagement.md#基础文件io错误码)。
69
70| 错误码ID | 错误信息 |
71| -------- | -------- |
72| 13900001 | Operation not permitted |
73| 13900007 | Arg list too long |
74| 13900015 | File exists |
75| 13900020 | Invalid argument |
76| 13900025 | No space left on device |
77| 13900037 | No data available |
78| 13900041 | Quota exceeded |
79| 13900042 | Unknown error |
80
81**示例:**
82
83  ```js
84  let filePath = pathDir + '/test.txt';
85  securityLabel.setSecurityLabel(filePath, "s0").then(() => {
86      console.info("setSecurityLabel successfully");
87  }).catch((err) => {
88      console.info("setSecurityLabel failed with error message: " + err.message + ", error code: " + err.code);
89  });
90  ```
91
92## securityLabel.setSecurityLabel
93
94setSecurityLabel(path:string, type:DataLevel, callback: AsyncCallback<void>):void
95
96以异步方法设置数据标签,以callback形式返回结果。
97
98**系统能力**:SystemCapability.FileManagement.File.FileIO
99
100**参数:**
101
102| 参数名    | 类型                      | 必填 | 说明                                         |
103| --------- | ------------------------- | ---- | -------------------------------------------- |
104| path      | string                    | 是   | 文件路径                                     |
105| type      | DataLevel                 | 是   | 文件等级属性,只支持"s0","s1","s2","s3","s4" |
106| callback  | AsyncCallback<void> | 是   | 是否设置数据标签之后的回调                   |
107
108**错误码:**
109
110以下错误码的详细介绍请参见[基础文件IO错误码](../errorcodes/errorcode-filemanagement.md#基础文件io错误码)。
111
112| 错误码ID | 错误信息 |
113| -------- | -------- |
114| 13900001 | Operation not permitted |
115| 13900007 | Arg list too long |
116| 13900015 | File exists |
117| 13900020 | Invalid argument |
118| 13900025 | No space left on device |
119| 13900037 | No data available |
120| 13900041 | Quota exceeded |
121| 13900042 | Unknown error |
122
123**示例:**
124
125  ```js
126  let filePath = pathDir + '/test.txt';
127  securityLabel.setSecurityLabel(filePath, "s0", (err) => {
128    if (err) {
129      console.info("setSecurityLabel failed with error message: " + err.message + ", error code: " + err.code);
130    } else {
131      console.info("setSecurityLabel successfully.");
132    }
133  });
134  ```
135
136## securityLabel.setSecurityLabelSync
137
138setSecurityLabelSync(path:string, type:DataLevel):void
139
140以同步方法设置数据标签。
141
142**系统能力**:SystemCapability.FileManagement.File.FileIO
143
144**参数:**
145
146| 参数名    | 类型   | 必填 | 说明                                         |
147| --------- | ------ | ---- | -------------------------------------------- |
148| path      | string | 是   | 文件路径                                     |
149| type      | DataLevel | 是   | 文件等级属性,只支持"s0","s1","s2","s3","s4" |
150
151**错误码:**
152
153以下错误码的详细介绍请参见[基础文件IO错误码](../errorcodes/errorcode-filemanagement.md#基础文件io错误码)。
154
155| 错误码ID | 错误信息 |
156| -------- | -------- |
157| 13900001 | Operation not permitted |
158| 13900007 | Arg list too long |
159| 13900015 | File exists |
160| 13900020 | Invalid argument |
161| 13900025 | No space left on device |
162| 13900037 | No data available |
163| 13900041 | Quota exceeded |
164| 13900042 | Unknown error |
165
166**示例:**
167
168```js
169let filePath = pathDir + '/test.txt';
170securityLabel.setSecurityLabelSync(filePath, "s0");
171```
172
173## securityLabel.getSecurityLabel
174
175getSecurityLabel(path:string):Promise<string>
176
177异步方法获取数据标签,以promise形式返回结果。
178
179**系统能力**:SystemCapability.FileManagement.File.FileIO
180
181**参数:**
182
183  | 参数名 | 类型   | 必填 | 说明     |
184  | ------ | ------ | ---- | -------- |
185  | path   | string | 是   | 文件路径 |
186
187**返回值:**
188
189  | 类型                  | 说明         |
190  | --------------------- | ------------ |
191  | Promise<string> | 返回数据标签 |
192
193**错误码:**
194
195以下错误码的详细介绍请参见[基础文件IO错误码](../errorcodes/errorcode-filemanagement.md#基础文件io错误码)。
196
197| 错误码ID | 错误信息 |
198| -------- | -------- |
199| 13900001 | Operation not permitted |
200| 13900007 | Arg list too long |
201| 13900015 | File exists |
202| 13900020 | Invalid argument |
203| 13900025 | No space left on device |
204| 13900037 | No data available |
205| 13900041 | Quota exceeded |
206| 13900042 | Unknown error |
207
208**示例:**
209
210  ```js
211  let filePath = pathDir + '/test.txt';
212  securityLabel.getSecurityLabel(filePath).then((type) => {
213      console.log("getSecurityLabel successfully, Label: " + type);
214  }).catch((err) => {
215      console.log("getSecurityLabel failed with error message: " + err.message + ", error code: " + err.code);
216  });
217  ```
218
219## securityLabel.getSecurityLabel
220
221getSecurityLabel(path:string, callback:AsyncCallback<string>): void
222
223异步方法获取数据标签,以callback形式返回结果。
224
225**系统能力**:SystemCapability.FileManagement.File.FileIO
226
227**参数:**
228
229  | 参数名   | 类型                        | 必填 | 说明                       |
230  | -------- | --------------------------- | ---- | -------------------------- |
231  | path     | string                      | 是   | 文件路径                   |
232  | callback | AsyncCallback<string> | 是   | 异步获取数据标签之后的回调 |
233
234**错误码:**
235
236以下错误码的详细介绍请参见[基础文件IO错误码](../errorcodes/errorcode-filemanagement.md#基础文件io错误码)。
237
238| 错误码ID | 错误信息 |
239| -------- | -------- |
240| 13900001 | Operation not permitted |
241| 13900007 | Arg list too long |
242| 13900015 | File exists |
243| 13900020 | Invalid argument |
244| 13900025 | No space left on device |
245| 13900037 | No data available |
246| 13900041 | Quota exceeded |
247| 13900042 | Unknown error |
248
249**示例:**
250
251  ```js
252  let filePath = pathDir + '/test.txt';
253  securityLabel.getSecurityLabel(filePath, (err, type) => {
254    if (err) {
255      console.log("getSecurityLabel failed with error message: " + err.message + ", error code: " + err.code);
256    } else {
257      console.log("getSecurityLabel successfully, Label: " + type);
258    }
259  });
260  ```
261
262## securityLabel.getSecurityLabelSync
263
264getSecurityLabelSync(path:string):string
265
266以同步方法获取数据标签。
267
268**系统能力**:SystemCapability.FileManagement.File.FileIO
269
270**参数:**
271
272| 参数名 | 类型   | 必填 | 说明     |
273| ------ | ------ | ---- | -------- |
274| path   | string | 是   | 文件路径 |
275
276**返回值:**
277
278| 类型   | 说明         |
279| ------ | ------------ |
280| string | 返回数据标签 |
281
282**错误码:**
283
284以下错误码的详细介绍请参见[基础文件IO错误码](../errorcodes/errorcode-filemanagement.md#基础文件io错误码)。
285
286| 错误码ID | 错误信息 |
287| -------- | -------- |
288| 13900001 | Operation not permitted |
289| 13900007 | Arg list too long |
290| 13900015 | File exists |
291| 13900020 | Invalid argument |
292| 13900025 | No space left on device |
293| 13900037 | No data available |
294| 13900041 | Quota exceeded |
295| 13900042 | Unknown error |
296
297**示例:**
298
299```js
300let filePath = pathDir + '/test.txt';
301let type = securityLabel.getSecurityLabelSync(filePath);
302console.log("getSecurityLabel successfully, Label: " + type);
303```
304