1e41f4b71Sopenharmony_ci# @ohos.configPolicy (配置策略)(系统接口)
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci配置策略提供按预先定义的定制配置层级获取对应定制配置目录和文件路径的能力。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci>  **说明:**
6e41f4b71Sopenharmony_ci>
7e41f4b71Sopenharmony_ci>  本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8e41f4b71Sopenharmony_ci>
9e41f4b71Sopenharmony_ci>  本模块接口均为系统接口。
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci## 导入模块
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci```ts
14e41f4b71Sopenharmony_ciimport configPolicy from '@ohos.configPolicy';
15e41f4b71Sopenharmony_ci```
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci## getOneCfgFile
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_cigetOneCfgFile(relPath: string, callback: AsyncCallback<string>)
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci使用callback形式返回指定文件名的最高优先级配置文件路径。
22e41f4b71Sopenharmony_ci例如,config.xml在设备中存在以下路径(优先级从低到高):/system/etc/config.xml/sys_pod/etc/config.xml,最终返回/sys_pod/etc/config.xml23e41f4b71Sopenharmony_ci
24e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Customization.ConfigPolicy
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ci**参数:**
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ci| 参数名   | 类型                        | 必填 | 说明                                       |
29e41f4b71Sopenharmony_ci| -------- | --------------------------- | ---- | ------------------------------------------ |
30e41f4b71Sopenharmony_ci| relPath  | string                      | 是   | 配置文件名                                 |
31e41f4b71Sopenharmony_ci| callback | AsyncCallback<string> | 是   | 异步回调,用于返回最高优先级配置文件的路径 |
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci**错误码**:
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                       |
38e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------------------------------------- |
39e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
40e41f4b71Sopenharmony_ci
41e41f4b71Sopenharmony_ci**示例:**
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ci  ```ts
44e41f4b71Sopenharmony_ci  import { BusinessError } from '@ohos.base';
45e41f4b71Sopenharmony_ci
46e41f4b71Sopenharmony_ci  try {
47e41f4b71Sopenharmony_ci    let relpath: string = 'etc/config.xml';
48e41f4b71Sopenharmony_ci    configPolicy.getOneCfgFile(relpath, (error: BusinessError, value: string) => {
49e41f4b71Sopenharmony_ci      if (error == null) {
50e41f4b71Sopenharmony_ci        console.log('value is ' + value);
51e41f4b71Sopenharmony_ci      } else {
52e41f4b71Sopenharmony_ci        console.log('error occurs ' + error);
53e41f4b71Sopenharmony_ci      }
54e41f4b71Sopenharmony_ci    });
55e41f4b71Sopenharmony_ci  } catch (error) {
56e41f4b71Sopenharmony_ci    let code = (error as BusinessError).code;
57e41f4b71Sopenharmony_ci    let message = (error as BusinessError).message;
58e41f4b71Sopenharmony_ci    console.log('error:' + code + ',' + message);
59e41f4b71Sopenharmony_ci  }
60e41f4b71Sopenharmony_ci  ```
61e41f4b71Sopenharmony_ci
62e41f4b71Sopenharmony_ci## getOneCfgFile
63e41f4b71Sopenharmony_ci
64e41f4b71Sopenharmony_cigetOneCfgFile(relPath: string): Promise<string>
65e41f4b71Sopenharmony_ci
66e41f4b71Sopenharmony_ci使用Promise形式返回指定文件名的最高优先级配置文件路径。
67e41f4b71Sopenharmony_ci
68e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Customization.ConfigPolicy
69e41f4b71Sopenharmony_ci
70e41f4b71Sopenharmony_ci**参数:**
71e41f4b71Sopenharmony_ci
72e41f4b71Sopenharmony_ci| 参数名  | 类型   | 必填 | 说明       |
73e41f4b71Sopenharmony_ci| ------- | ------ | ---- | ---------- |
74e41f4b71Sopenharmony_ci| relPath | string | 是   | 配置文件名 |
75e41f4b71Sopenharmony_ci
76e41f4b71Sopenharmony_ci**错误码**:
77e41f4b71Sopenharmony_ci
78e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
79e41f4b71Sopenharmony_ci
80e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                       |
81e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------------------------------------- |
82e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
83e41f4b71Sopenharmony_ci
84e41f4b71Sopenharmony_ci**返回值:**
85e41f4b71Sopenharmony_ci
86e41f4b71Sopenharmony_ci| 类型                   | 说明                     |
87e41f4b71Sopenharmony_ci| ---------------------- | ------------------------ |
88e41f4b71Sopenharmony_ci| Promise<string>  | 最高优先级配置文件的路径 |
89e41f4b71Sopenharmony_ci
90e41f4b71Sopenharmony_ci**示例:**
91e41f4b71Sopenharmony_ci
92e41f4b71Sopenharmony_ci  ```ts
93e41f4b71Sopenharmony_ci  import { BusinessError } from '@ohos.base';
94e41f4b71Sopenharmony_ci
95e41f4b71Sopenharmony_ci  try {
96e41f4b71Sopenharmony_ci    let relpath: string = 'etc/config.xml';
97e41f4b71Sopenharmony_ci    configPolicy.getOneCfgFile(relpath).then((value: string) => {
98e41f4b71Sopenharmony_ci      console.log('value is ' + value);
99e41f4b71Sopenharmony_ci    }).catch((error: BusinessError) => {
100e41f4b71Sopenharmony_ci      console.log('getOneCfgFile promise ' + error);
101e41f4b71Sopenharmony_ci    });
102e41f4b71Sopenharmony_ci  } catch (error) {
103e41f4b71Sopenharmony_ci    let code = (error as BusinessError).code;
104e41f4b71Sopenharmony_ci    let message = (error as BusinessError).message;
105e41f4b71Sopenharmony_ci    console.log('error:' + code + ',' + message);
106e41f4b71Sopenharmony_ci  }
107e41f4b71Sopenharmony_ci  ```
108e41f4b71Sopenharmony_ci
109e41f4b71Sopenharmony_ci## getCfgFiles
110e41f4b71Sopenharmony_ci
111e41f4b71Sopenharmony_cigetCfgFiles(relPath: string, callback: AsyncCallback<Array<string>>)
112e41f4b71Sopenharmony_ci
113e41f4b71Sopenharmony_ci按优先级从低到高,使用callback形式返回指定文件名所有的文件列表。
114e41f4b71Sopenharmony_ci例如,config.xml在设备中存在以下路径(优先级从低到高):/system/etc/config.xml/sys_pod/etc/config.xml,最终返回/system/etc/config.xml, /sys_pod/etc/config.xml115e41f4b71Sopenharmony_ci
116e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Customization.ConfigPolicy
117e41f4b71Sopenharmony_ci
118e41f4b71Sopenharmony_ci**参数:**
119e41f4b71Sopenharmony_ci
120e41f4b71Sopenharmony_ci| 参数名   | 类型                                     | 必填 | 说明                       |
121e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | ---- | -------------------------- |
122e41f4b71Sopenharmony_ci| relPath  | string                                   | 是   | 配置文件名                 |
123e41f4b71Sopenharmony_ci| callback | AsyncCallback<Array<string>> | 是   | 异步回调,用于返回文件列表 |
124e41f4b71Sopenharmony_ci
125e41f4b71Sopenharmony_ci**错误码**:
126e41f4b71Sopenharmony_ci
127e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
128e41f4b71Sopenharmony_ci
129e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                       |
130e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------------------------------------- |
131e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
132e41f4b71Sopenharmony_ci
133e41f4b71Sopenharmony_ci**示例:**
134e41f4b71Sopenharmony_ci
135e41f4b71Sopenharmony_ci  ```ts
136e41f4b71Sopenharmony_ci  import { BusinessError } from '@ohos.base';
137e41f4b71Sopenharmony_ci
138e41f4b71Sopenharmony_ci  try {
139e41f4b71Sopenharmony_ci    configPolicy.getCfgFiles('etc/config.xml', (error: BusinessError, value: Array<string>) => {
140e41f4b71Sopenharmony_ci      if (error == null) {
141e41f4b71Sopenharmony_ci        console.log('value is ' + value);
142e41f4b71Sopenharmony_ci      } else {
143e41f4b71Sopenharmony_ci        console.log('error occurs ' + error);
144e41f4b71Sopenharmony_ci      }
145e41f4b71Sopenharmony_ci    });
146e41f4b71Sopenharmony_ci  } catch (error) {
147e41f4b71Sopenharmony_ci    let code = (error as BusinessError).code;
148e41f4b71Sopenharmony_ci    let message = (error as BusinessError).message;
149e41f4b71Sopenharmony_ci    console.log('error:' + code + ',' + message);
150e41f4b71Sopenharmony_ci  }
151e41f4b71Sopenharmony_ci  ```
152e41f4b71Sopenharmony_ci
153e41f4b71Sopenharmony_ci## getCfgFiles
154e41f4b71Sopenharmony_ci
155e41f4b71Sopenharmony_cigetCfgFiles(relPath: string): Promise&lt;Array&lt;string&gt;&gt;
156e41f4b71Sopenharmony_ci
157e41f4b71Sopenharmony_ci按优先级从低到高,使用Promise形式返回指定文件名所有的文件列表。
158e41f4b71Sopenharmony_ci
159e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Customization.ConfigPolicy
160e41f4b71Sopenharmony_ci
161e41f4b71Sopenharmony_ci**参数:**
162e41f4b71Sopenharmony_ci
163e41f4b71Sopenharmony_ci| 参数名  | 类型   | 必填 | 说明       |
164e41f4b71Sopenharmony_ci| ------- | ------ | ---- | ---------- |
165e41f4b71Sopenharmony_ci| relPath | string | 是   | 配置文件名 |
166e41f4b71Sopenharmony_ci
167e41f4b71Sopenharmony_ci**错误码**:
168e41f4b71Sopenharmony_ci
169e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
170e41f4b71Sopenharmony_ci
171e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                       |
172e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------------------------------------- |
173e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
174e41f4b71Sopenharmony_ci
175e41f4b71Sopenharmony_ci**返回值:**
176e41f4b71Sopenharmony_ci
177e41f4b71Sopenharmony_ci| 类型                               | 说明     |
178e41f4b71Sopenharmony_ci| ---------------------------------- | -------- |
179e41f4b71Sopenharmony_ci| Promise&lt;Array&lt;string&gt;&gt; | 文件列表 |
180e41f4b71Sopenharmony_ci
181e41f4b71Sopenharmony_ci**示例:**
182e41f4b71Sopenharmony_ci
183e41f4b71Sopenharmony_ci  ```ts
184e41f4b71Sopenharmony_ci  import { BusinessError } from '@ohos.base';
185e41f4b71Sopenharmony_ci
186e41f4b71Sopenharmony_ci  try {
187e41f4b71Sopenharmony_ci    let relpath: string = 'etc/config.xml';
188e41f4b71Sopenharmony_ci    configPolicy.getCfgFiles(relpath).then((value: Array<string>) => {
189e41f4b71Sopenharmony_ci      console.log('value is ' + value);
190e41f4b71Sopenharmony_ci    }).catch((error: BusinessError) => {
191e41f4b71Sopenharmony_ci      console.log('getCfgFiles promise ' + error);
192e41f4b71Sopenharmony_ci    });
193e41f4b71Sopenharmony_ci  } catch (error) {
194e41f4b71Sopenharmony_ci    let code = (error as BusinessError).code;
195e41f4b71Sopenharmony_ci    let message = (error as BusinessError).message;
196e41f4b71Sopenharmony_ci    console.log('error:' + code + ',' + message);
197e41f4b71Sopenharmony_ci  }
198e41f4b71Sopenharmony_ci  ```
199e41f4b71Sopenharmony_ci
200e41f4b71Sopenharmony_ci## getCfgDirList
201e41f4b71Sopenharmony_ci
202e41f4b71Sopenharmony_cigetCfgDirList(callback: AsyncCallback&lt;Array&lt;string&gt;&gt;)
203e41f4b71Sopenharmony_ci
204e41f4b71Sopenharmony_ci使用callback形式返回配置层级目录列表。
205e41f4b71Sopenharmony_ci
206e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Customization.ConfigPolicy
207e41f4b71Sopenharmony_ci
208e41f4b71Sopenharmony_ci**参数:**
209e41f4b71Sopenharmony_ci
210e41f4b71Sopenharmony_ci| 参数名   | 类型                                     | 必填 | 说明                               |
211e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | ---- | ---------------------------------- |
212e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;Array&lt;string&gt;&gt; | 是   | 异步回调,用于返回配置层级目录列表 |
213e41f4b71Sopenharmony_ci
214e41f4b71Sopenharmony_ci**错误码**:
215e41f4b71Sopenharmony_ci
216e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
217e41f4b71Sopenharmony_ci
218e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                       |
219e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------------------------------------- |
220e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
221e41f4b71Sopenharmony_ci
222e41f4b71Sopenharmony_ci**示例:**
223e41f4b71Sopenharmony_ci
224e41f4b71Sopenharmony_ci  ```ts
225e41f4b71Sopenharmony_ci  import { BusinessError } from '@ohos.base';
226e41f4b71Sopenharmony_ci
227e41f4b71Sopenharmony_ci  try {
228e41f4b71Sopenharmony_ci    configPolicy.getCfgDirList((error: BusinessError, value: Array<string>) => {
229e41f4b71Sopenharmony_ci      if (error == null) {
230e41f4b71Sopenharmony_ci        console.log('value is ' + value);
231e41f4b71Sopenharmony_ci      } else {
232e41f4b71Sopenharmony_ci        console.log('error occurs ' + error);
233e41f4b71Sopenharmony_ci      }
234e41f4b71Sopenharmony_ci    });
235e41f4b71Sopenharmony_ci  } catch (error) {
236e41f4b71Sopenharmony_ci    let code = (error as BusinessError).code;
237e41f4b71Sopenharmony_ci    let message = (error as BusinessError).message;
238e41f4b71Sopenharmony_ci    console.log('error:' + code + ',' + message);
239e41f4b71Sopenharmony_ci  }
240e41f4b71Sopenharmony_ci  ```
241e41f4b71Sopenharmony_ci
242e41f4b71Sopenharmony_ci## getCfgDirList
243e41f4b71Sopenharmony_ci
244e41f4b71Sopenharmony_cigetCfgDirList(): Promise&lt;Array&lt;string&gt;&gt;
245e41f4b71Sopenharmony_ci
246e41f4b71Sopenharmony_ci使用Promise形式返回配置层级目录列表。
247e41f4b71Sopenharmony_ci
248e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Customization.ConfigPolicy
249e41f4b71Sopenharmony_ci
250e41f4b71Sopenharmony_ci**返回值:**
251e41f4b71Sopenharmony_ci
252e41f4b71Sopenharmony_ci| 类型                               | 说明             |
253e41f4b71Sopenharmony_ci| ---------------------------------- | ---------------- |
254e41f4b71Sopenharmony_ci| Promise&lt;Array&lt;string&gt;&gt; | 配置层级目录列表 |
255e41f4b71Sopenharmony_ci
256e41f4b71Sopenharmony_ci**示例:**
257e41f4b71Sopenharmony_ci
258e41f4b71Sopenharmony_ci  ```ts
259e41f4b71Sopenharmony_ci  import { BusinessError } from '@ohos.base';
260e41f4b71Sopenharmony_ci
261e41f4b71Sopenharmony_ci  try {
262e41f4b71Sopenharmony_ci    configPolicy.getCfgDirList().then((value: Array<string>) => {
263e41f4b71Sopenharmony_ci      console.log('value is ' + value);
264e41f4b71Sopenharmony_ci    }).catch((error: BusinessError) => {
265e41f4b71Sopenharmony_ci      console.log('getCfgDirList promise ' + error);
266e41f4b71Sopenharmony_ci    });
267e41f4b71Sopenharmony_ci  } catch (error) {
268e41f4b71Sopenharmony_ci    let code = (error as BusinessError).code;
269e41f4b71Sopenharmony_ci    let message = (error as BusinessError).message;
270e41f4b71Sopenharmony_ci    console.log('error:' + code + ',' + message);
271e41f4b71Sopenharmony_ci  }
272e41f4b71Sopenharmony_ci  ```
273e41f4b71Sopenharmony_ci
274e41f4b71Sopenharmony_ci## getOneCfgFile<sup>11+</sup>
275e41f4b71Sopenharmony_ci
276e41f4b71Sopenharmony_cigetOneCfgFile(relPath: string, followMode: FollowXMode, callback: AsyncCallback&lt;string&gt;)
277e41f4b71Sopenharmony_ci
278e41f4b71Sopenharmony_ci根据提供的跟随模式获取指定文件名的最高优先级配置文件路径,并使用callback形式返回。
279e41f4b71Sopenharmony_ci例如,config.xml在设备中存在以下路径(优先级从低到高):/system/etc/config.xml/sys_pod/etc/config.xml/sys_pod/etc/carrier/46060/etc/config.xml,且设备默认卡opkey为46060,设置的followMode为configPolicy.FollowXMode.SIM_DEFAULT,最终返回/sys_pod/etc/carrier/46060/etc/config.xml280e41f4b71Sopenharmony_ci
281e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Customization.ConfigPolicy
282e41f4b71Sopenharmony_ci
283e41f4b71Sopenharmony_ci**参数:**
284e41f4b71Sopenharmony_ci
285e41f4b71Sopenharmony_ci| 参数名     | 类型                          | 必填 | 说明                                       |
286e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | ---- | ------------------------------------------ |
287e41f4b71Sopenharmony_ci| relPath    | string                        | 是   | 配置文件名                                 |
288e41f4b71Sopenharmony_ci| followMode | [FollowXMode](#followxmode11) | 是   | 跟随模式                                   |
289e41f4b71Sopenharmony_ci| callback   | AsyncCallback&lt;string&gt;   | 是   | 异步回调,用于返回最高优先级配置文件的路径 |
290e41f4b71Sopenharmony_ci
291e41f4b71Sopenharmony_ci**错误码**:
292e41f4b71Sopenharmony_ci
293e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
294e41f4b71Sopenharmony_ci
295e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                       |
296e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------------------------------------- |
297e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
298e41f4b71Sopenharmony_ci
299e41f4b71Sopenharmony_ci**示例:**
300e41f4b71Sopenharmony_ci
301e41f4b71Sopenharmony_ci  ```ts
302e41f4b71Sopenharmony_ci  import { BusinessError } from '@ohos.base';
303e41f4b71Sopenharmony_ci
304e41f4b71Sopenharmony_ci  try {
305e41f4b71Sopenharmony_ci    let relpath: string = 'etc/config.xml';
306e41f4b71Sopenharmony_ci    configPolicy.getOneCfgFile(relpath, configPolicy.FollowXMode.SIM_DEFAULT,
307e41f4b71Sopenharmony_ci      (error: BusinessError, value: string) => {
308e41f4b71Sopenharmony_ci      if (error == null) {
309e41f4b71Sopenharmony_ci        console.log('value is ' + value);
310e41f4b71Sopenharmony_ci      } else {
311e41f4b71Sopenharmony_ci        console.log('error occurs ' + error);
312e41f4b71Sopenharmony_ci      }
313e41f4b71Sopenharmony_ci    });
314e41f4b71Sopenharmony_ci  } catch (error) {
315e41f4b71Sopenharmony_ci    let code = (error as BusinessError).code;
316e41f4b71Sopenharmony_ci    let message = (error as BusinessError).message;
317e41f4b71Sopenharmony_ci    console.log('error:' + code + ',' + message);
318e41f4b71Sopenharmony_ci  }
319e41f4b71Sopenharmony_ci  ```
320e41f4b71Sopenharmony_ci
321e41f4b71Sopenharmony_ci## getOneCfgFile<sup>11+</sup>
322e41f4b71Sopenharmony_ci
323e41f4b71Sopenharmony_cigetOneCfgFile(relPath: string, followMode: FollowXMode, extra: string, callback: AsyncCallback&lt;string&gt;)
324e41f4b71Sopenharmony_ci
325e41f4b71Sopenharmony_ci根据提供的跟随模式获取指定文件名的最高优先级配置文件路径,并使用callback形式返回。
326e41f4b71Sopenharmony_ci例如,config.xml在设备中存在以下路径(优先级从低到高):/system/etc/config.xml/sys_pod/etc/config.xml/sys_pod/etc/carrier/46060/etc/config.xml,且设备卡1的opkey为46060,设置的followMode为configPolicy.FollowXMode.USER_DEFINED,自定义跟随规则为"etc/carrier/${telephony.sim.opkey0}",最终返回/sys_pod/etc/carrier/46060/etc/config.xml327e41f4b71Sopenharmony_ci
328e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Customization.ConfigPolicy
329e41f4b71Sopenharmony_ci
330e41f4b71Sopenharmony_ci**参数:**
331e41f4b71Sopenharmony_ci
332e41f4b71Sopenharmony_ci| 参数名     | 类型                          | 必填 | 说明                                                   |
333e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | ---- | ------------------------------------------------------ |
334e41f4b71Sopenharmony_ci| relPath    | string                        | 是   | 配置文件名                                             |
335e41f4b71Sopenharmony_ci| followMode | [FollowXMode](#followxmode11) | 是   | 跟随模式                                               |
336e41f4b71Sopenharmony_ci| extra      | string                        | 是   | 用户自定义跟随规则,仅在followMode为USER_DEFINED时有效 |
337e41f4b71Sopenharmony_ci| callback   | AsyncCallback&lt;string&gt;   | 是   | 异步回调,用于返回最高优先级配置文件的路径             |
338e41f4b71Sopenharmony_ci
339e41f4b71Sopenharmony_ci**错误码**:
340e41f4b71Sopenharmony_ci
341e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
342e41f4b71Sopenharmony_ci
343e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                       |
344e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------------------------------------- |
345e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
346e41f4b71Sopenharmony_ci
347e41f4b71Sopenharmony_ci**示例:**
348e41f4b71Sopenharmony_ci
349e41f4b71Sopenharmony_ci  ```ts
350e41f4b71Sopenharmony_ci  import { BusinessError } from '@ohos.base';
351e41f4b71Sopenharmony_ci
352e41f4b71Sopenharmony_ci  try {
353e41f4b71Sopenharmony_ci    let relpath: string = 'etc/config.xml';
354e41f4b71Sopenharmony_ci    let extra: string = 'etc/carrier/${telephony.sim.opkey0}';
355e41f4b71Sopenharmony_ci    configPolicy.getOneCfgFile(relpath, configPolicy.FollowXMode.USER_DEFINED, extra,
356e41f4b71Sopenharmony_ci      (error: BusinessError, value: string) => {
357e41f4b71Sopenharmony_ci      if (error == null) {
358e41f4b71Sopenharmony_ci        console.log('value is ' + value);
359e41f4b71Sopenharmony_ci      } else {
360e41f4b71Sopenharmony_ci        console.log('error occurs ' + error);
361e41f4b71Sopenharmony_ci      }
362e41f4b71Sopenharmony_ci    });
363e41f4b71Sopenharmony_ci  } catch (error) {
364e41f4b71Sopenharmony_ci    let code = (error as BusinessError).code;
365e41f4b71Sopenharmony_ci    let message = (error as BusinessError).message;
366e41f4b71Sopenharmony_ci    console.log('error:' + code + ',' + message);
367e41f4b71Sopenharmony_ci  }
368e41f4b71Sopenharmony_ci  ```
369e41f4b71Sopenharmony_ci
370e41f4b71Sopenharmony_ci## getOneCfgFile<sup>11+</sup>
371e41f4b71Sopenharmony_ci
372e41f4b71Sopenharmony_cigetOneCfgFile(relPath: string, followMode: FollowXMode, extra?: string): Promise&lt;string&gt;
373e41f4b71Sopenharmony_ci
374e41f4b71Sopenharmony_ci根据提供的跟随模式获取指定文件名的最高优先级配置文件路径,并使用Promise形式返回。
375e41f4b71Sopenharmony_ci
376e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Customization.ConfigPolicy
377e41f4b71Sopenharmony_ci
378e41f4b71Sopenharmony_ci**参数:**
379e41f4b71Sopenharmony_ci
380e41f4b71Sopenharmony_ci| 参数名     | 类型                          | 必填 | 说明                                                   |
381e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | ---- | ------------------------------------------------------ |
382e41f4b71Sopenharmony_ci| relPath    | string                        | 是   | 配置文件名                                             |
383e41f4b71Sopenharmony_ci| followMode | [FollowXMode](#followxmode11) | 是   | 跟随模式                                               |
384e41f4b71Sopenharmony_ci| extra      | string                        | 否   | 用户自定义跟随规则,仅在followMode为USER_DEFINED时必填 |
385e41f4b71Sopenharmony_ci
386e41f4b71Sopenharmony_ci**错误码**:
387e41f4b71Sopenharmony_ci
388e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
389e41f4b71Sopenharmony_ci
390e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                       |
391e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------------------------------------- |
392e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3.Parameter verification failed.|
393e41f4b71Sopenharmony_ci
394e41f4b71Sopenharmony_ci**返回值:**
395e41f4b71Sopenharmony_ci
396e41f4b71Sopenharmony_ci| 类型                   | 说明                     |
397e41f4b71Sopenharmony_ci| ---------------------- | ------------------------ |
398e41f4b71Sopenharmony_ci| Promise&lt;string&gt;  | 最高优先级配置文件的路径 |
399e41f4b71Sopenharmony_ci
400e41f4b71Sopenharmony_ci**示例:**
401e41f4b71Sopenharmony_ci
402e41f4b71Sopenharmony_ci  ```ts
403e41f4b71Sopenharmony_ci  import { BusinessError } from '@ohos.base';
404e41f4b71Sopenharmony_ci
405e41f4b71Sopenharmony_ci  try {
406e41f4b71Sopenharmony_ci    let relpath: string = 'etc/config.xml';
407e41f4b71Sopenharmony_ci    let extra: string = 'etc/carrier/${telephony.sim.opkey0}';
408e41f4b71Sopenharmony_ci    configPolicy.getOneCfgFile(relpath, configPolicy.FollowXMode.SIM_DEFAULT, extra).then((value: string) => {
409e41f4b71Sopenharmony_ci      console.log('value is ' + value);
410e41f4b71Sopenharmony_ci    }).catch((error: BusinessError) => {
411e41f4b71Sopenharmony_ci      console.log('getOneCfgFile promise ' + error);
412e41f4b71Sopenharmony_ci    });
413e41f4b71Sopenharmony_ci  } catch (error) {
414e41f4b71Sopenharmony_ci    let code = (error as BusinessError).code;
415e41f4b71Sopenharmony_ci    let message = (error as BusinessError).message;
416e41f4b71Sopenharmony_ci    console.log('error:' + code + ',' + message);
417e41f4b71Sopenharmony_ci  }
418e41f4b71Sopenharmony_ci  ```
419e41f4b71Sopenharmony_ci
420e41f4b71Sopenharmony_ci## getOneCfgFileSync<sup>11+</sup>
421e41f4b71Sopenharmony_ci
422e41f4b71Sopenharmony_cigetOneCfgFileSync(relPath: string, followMode?: FollowXMode, extra?: string): string
423e41f4b71Sopenharmony_ci
424e41f4b71Sopenharmony_ci根据提供的跟随模式返回指定文件名的最高优先级配置文件路径。
425e41f4b71Sopenharmony_ci
426e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Customization.ConfigPolicy
427e41f4b71Sopenharmony_ci
428e41f4b71Sopenharmony_ci**参数:**
429e41f4b71Sopenharmony_ci
430e41f4b71Sopenharmony_ci| 参数名     | 类型                          | 必填 | 说明                                                 |
431e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | ---- | ----------------------------------------------------|
432e41f4b71Sopenharmony_ci| relPath    | string                        | 是   | 配置文件名                                           |
433e41f4b71Sopenharmony_ci| followMode | [FollowXMode](#followxmode11) | 否   | 跟随模式,不设置时,默认使用DEFAULT                    |
434e41f4b71Sopenharmony_ci| extra      | string                        | 否   | 用户自定义跟随规则,仅在followMode为USER_DEFINED时必填 |
435e41f4b71Sopenharmony_ci
436e41f4b71Sopenharmony_ci**错误码**:
437e41f4b71Sopenharmony_ci
438e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
439e41f4b71Sopenharmony_ci
440e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                       |
441e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------------------------------------- |
442e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3.Parameter verification failed.|
443e41f4b71Sopenharmony_ci
444e41f4b71Sopenharmony_ci**返回值:**
445e41f4b71Sopenharmony_ci
446e41f4b71Sopenharmony_ci| 类型   | 说明                     |
447e41f4b71Sopenharmony_ci| ------ | ------------------------ |
448e41f4b71Sopenharmony_ci| string | 最高优先级配置文件的路径 |
449e41f4b71Sopenharmony_ci
450e41f4b71Sopenharmony_ci
451e41f4b71Sopenharmony_ci**示例:**
452e41f4b71Sopenharmony_ci
453e41f4b71Sopenharmony_ci  ```ts
454e41f4b71Sopenharmony_ci  import { BusinessError } from '@ohos.base';
455e41f4b71Sopenharmony_ci
456e41f4b71Sopenharmony_ci  try {
457e41f4b71Sopenharmony_ci    let relpath: string = 'etc/config.xml';
458e41f4b71Sopenharmony_ci    let extra: string = 'etc/carrier/${telephony.sim.opkey0}';
459e41f4b71Sopenharmony_ci    let result: string = configPolicy.getOneCfgFileSync(relpath, configPolicy.FollowXMode.USER_DEFINED, extra);
460e41f4b71Sopenharmony_ci    console.log('result is ' + result);
461e41f4b71Sopenharmony_ci  } catch (error) {
462e41f4b71Sopenharmony_ci    let code = (error as BusinessError).code;
463e41f4b71Sopenharmony_ci    let message = (error as BusinessError).message;
464e41f4b71Sopenharmony_ci    console.log('error:' + code + ',' + message);
465e41f4b71Sopenharmony_ci  }
466e41f4b71Sopenharmony_ci  ```
467e41f4b71Sopenharmony_ci
468e41f4b71Sopenharmony_ci## getCfgFiles<sup>11+</sup>
469e41f4b71Sopenharmony_ci
470e41f4b71Sopenharmony_cigetCfgFiles(relPath: string, followMode: FollowXMode, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;)
471e41f4b71Sopenharmony_ci
472e41f4b71Sopenharmony_ci按优先级从低到高,根据提供的跟随模式获取指定文件名所有的文件列表,并使用callback形式返回。
473e41f4b71Sopenharmony_ci例如,config.xml在设备中存在以下路径(优先级从低到高):/system/etc/config.xml/sys_pod/etc/config.xml/sys_pod/etc/carrier/46060/etc/config.xml,且设备默认卡opkey为46060,设置的followMode为configPolicy.FollowXMode.SIM_DEFAULT,最终返回/system/etc/config.xml, /sys_pod/etc/config.xml, /sys_pod/etc/carrier/46060/etc/config.xml474e41f4b71Sopenharmony_ci
475e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Customization.ConfigPolicy
476e41f4b71Sopenharmony_ci
477e41f4b71Sopenharmony_ci**参数:**
478e41f4b71Sopenharmony_ci
479e41f4b71Sopenharmony_ci| 参数名     | 类型                                     | 必填 | 说明                       |
480e41f4b71Sopenharmony_ci| ---------- | ---------------------------------------- | ---- | -------------------------- |
481e41f4b71Sopenharmony_ci| relPath    | string                                   | 是   | 配置文件名                 |
482e41f4b71Sopenharmony_ci| followMode | [FollowXMode](#followxmode11)            | 是   | 跟随模式                   |
483e41f4b71Sopenharmony_ci| callback   | AsyncCallback&lt;Array&lt;string&gt;&gt; | 是   | 异步回调,用于返回文件列表 |
484e41f4b71Sopenharmony_ci
485e41f4b71Sopenharmony_ci**错误码**:
486e41f4b71Sopenharmony_ci
487e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
488e41f4b71Sopenharmony_ci
489e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                       |
490e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------------------------------------- |
491e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
492e41f4b71Sopenharmony_ci
493e41f4b71Sopenharmony_ci**示例:**
494e41f4b71Sopenharmony_ci
495e41f4b71Sopenharmony_ci  ```ts
496e41f4b71Sopenharmony_ci  import { BusinessError } from '@ohos.base';
497e41f4b71Sopenharmony_ci
498e41f4b71Sopenharmony_ci  try {
499e41f4b71Sopenharmony_ci    let relpath: string = 'etc/config.xml';
500e41f4b71Sopenharmony_ci    configPolicy.getCfgFiles(relpath, configPolicy.FollowXMode.SIM_DEFAULT,
501e41f4b71Sopenharmony_ci      (error: BusinessError, value: Array<string>) => {
502e41f4b71Sopenharmony_ci      if (error == null) {
503e41f4b71Sopenharmony_ci        console.log('value is ' + value);
504e41f4b71Sopenharmony_ci      } else {
505e41f4b71Sopenharmony_ci        console.log('error occurs ' + error);
506e41f4b71Sopenharmony_ci      }
507e41f4b71Sopenharmony_ci    });
508e41f4b71Sopenharmony_ci  } catch (error) {
509e41f4b71Sopenharmony_ci    let code = (error as BusinessError).code;
510e41f4b71Sopenharmony_ci    let message = (error as BusinessError).message;
511e41f4b71Sopenharmony_ci    console.log('error:' + code + ',' + message);
512e41f4b71Sopenharmony_ci  }
513e41f4b71Sopenharmony_ci  ```
514e41f4b71Sopenharmony_ci
515e41f4b71Sopenharmony_ci## getCfgFiles<sup>11+</sup>
516e41f4b71Sopenharmony_ci
517e41f4b71Sopenharmony_cigetCfgFiles(relPath: string, followMode: FollowXMode, extra: string, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;)
518e41f4b71Sopenharmony_ci
519e41f4b71Sopenharmony_ci按优先级从低到高,根据提供的跟随模式获取指定文件名所有的文件列表,并使用callback形式返回。
520e41f4b71Sopenharmony_ci例如,config.xml在设备中存在以下路径(优先级从低到高):/system/etc/config.xml/sys_pod/etc/config.xml/sys_pod/etc/carrier/46060/etc/config.xml,且设备卡1的opkey为46060,设置的followMode为configPolicy.FollowXMode.USER_DEFINED,自定义跟随规则为"etc/carrier/${telephony.sim.opkey0}",最终返回/system/etc/config.xml, /sys_pod/etc/config.xml, /sys_pod/etc/carrier/46060/etc/config.xml521e41f4b71Sopenharmony_ci
522e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Customization.ConfigPolicy
523e41f4b71Sopenharmony_ci
524e41f4b71Sopenharmony_ci**参数:**
525e41f4b71Sopenharmony_ci
526e41f4b71Sopenharmony_ci| 参数名     | 类型                                     | 必填 | 说明                                                   |
527e41f4b71Sopenharmony_ci| ---------- | ---------------------------------------- | ---- | ------------------------------------------------------ |
528e41f4b71Sopenharmony_ci| relPath    | string                                   | 是   | 配置文件名                                             |
529e41f4b71Sopenharmony_ci| followMode | [FollowXMode](#followxmode11)            | 是   | 跟随模式                                               |
530e41f4b71Sopenharmony_ci| extra      | string                                   | 是   | 用户自定义跟随规则,仅在followMode为USER_DEFINED时有效 |
531e41f4b71Sopenharmony_ci| callback   | AsyncCallback&lt;Array&lt;string&gt;&gt; | 是   | 异步回调,用于返回文件列表                             |
532e41f4b71Sopenharmony_ci
533e41f4b71Sopenharmony_ci**错误码**:
534e41f4b71Sopenharmony_ci
535e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
536e41f4b71Sopenharmony_ci
537e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                       |
538e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------------------------------------- |
539e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
540e41f4b71Sopenharmony_ci
541e41f4b71Sopenharmony_ci**示例:**
542e41f4b71Sopenharmony_ci
543e41f4b71Sopenharmony_ci  ```ts
544e41f4b71Sopenharmony_ci  import { BusinessError } from '@ohos.base';
545e41f4b71Sopenharmony_ci
546e41f4b71Sopenharmony_ci  try {
547e41f4b71Sopenharmony_ci    let relpath: string = 'etc/config.xml';
548e41f4b71Sopenharmony_ci    let extra: string = 'etc/carrier/${telephony.sim.opkey0}';
549e41f4b71Sopenharmony_ci    configPolicy.getCfgFiles(relpath, configPolicy.FollowXMode.SIM_DEFAULT, extra,
550e41f4b71Sopenharmony_ci      (error: BusinessError, value: Array<string>) => {
551e41f4b71Sopenharmony_ci      if (error == null) {
552e41f4b71Sopenharmony_ci        console.log('value is ' + value);
553e41f4b71Sopenharmony_ci      } else {
554e41f4b71Sopenharmony_ci        console.log('error occurs ' + error);
555e41f4b71Sopenharmony_ci      }
556e41f4b71Sopenharmony_ci    });
557e41f4b71Sopenharmony_ci  } catch (error) {
558e41f4b71Sopenharmony_ci    let code = (error as BusinessError).code;
559e41f4b71Sopenharmony_ci    let message = (error as BusinessError).message;
560e41f4b71Sopenharmony_ci    console.log('error:' + code + ',' + message);
561e41f4b71Sopenharmony_ci  }
562e41f4b71Sopenharmony_ci  ```
563e41f4b71Sopenharmony_ci
564e41f4b71Sopenharmony_ci## getCfgFiles<sup>11+</sup>
565e41f4b71Sopenharmony_ci
566e41f4b71Sopenharmony_cigetCfgFiles(relPath: string, followMode: FollowXMode, extra?: string): Promise&lt;Array&lt;string&gt;&gt;
567e41f4b71Sopenharmony_ci
568e41f4b71Sopenharmony_ci根据提供的跟随模式按优先级从低到高,获取指定文件名所有的文件列表,并使用Promise形式返回。
569e41f4b71Sopenharmony_ci
570e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Customization.ConfigPolicy
571e41f4b71Sopenharmony_ci
572e41f4b71Sopenharmony_ci**参数:**
573e41f4b71Sopenharmony_ci
574e41f4b71Sopenharmony_ci| 参数名     | 类型                          | 必填 | 说明                                                   |
575e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | ---- | ------------------------------------------------------ |
576e41f4b71Sopenharmony_ci| relPath    | string                        | 是   | 配置文件名                                             |
577e41f4b71Sopenharmony_ci| followMode | [FollowXMode](#followxmode11) | 是   | 跟随模式                                               |
578e41f4b71Sopenharmony_ci| extra      | string                        | 否   | 用户自定义跟随规则,仅在followMode为USER_DEFINED时必填 |
579e41f4b71Sopenharmony_ci
580e41f4b71Sopenharmony_ci**错误码**:
581e41f4b71Sopenharmony_ci
582e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
583e41f4b71Sopenharmony_ci
584e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                       |
585e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------------------------------------- |
586e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3.Parameter verification failed.|
587e41f4b71Sopenharmony_ci
588e41f4b71Sopenharmony_ci**返回值:**
589e41f4b71Sopenharmony_ci
590e41f4b71Sopenharmony_ci| 类型                               | 说明     |
591e41f4b71Sopenharmony_ci| ---------------------------------- | -------- |
592e41f4b71Sopenharmony_ci| Promise&lt;Array&lt;string&gt;&gt; | 文件列表 |
593e41f4b71Sopenharmony_ci
594e41f4b71Sopenharmony_ci**示例:**
595e41f4b71Sopenharmony_ci
596e41f4b71Sopenharmony_ci  ```ts
597e41f4b71Sopenharmony_ci  import { BusinessError } from '@ohos.base';
598e41f4b71Sopenharmony_ci
599e41f4b71Sopenharmony_ci  try {
600e41f4b71Sopenharmony_ci    let relpath: string = 'etc/config.xml';
601e41f4b71Sopenharmony_ci    let extra: string = 'etc/carrier/${telephony.sim.opkey0}';
602e41f4b71Sopenharmony_ci    configPolicy.getCfgFiles(relpath, configPolicy.FollowXMode.SIM_DEFAULT, extra).then((value: Array<string>) => {
603e41f4b71Sopenharmony_ci      console.log('value is ' + value);
604e41f4b71Sopenharmony_ci    }).catch((error: BusinessError) => {
605e41f4b71Sopenharmony_ci      console.log('getCfgFiles promise ' + error);
606e41f4b71Sopenharmony_ci    });
607e41f4b71Sopenharmony_ci  } catch (error) {
608e41f4b71Sopenharmony_ci    let code = (error as BusinessError).code;
609e41f4b71Sopenharmony_ci    let message = (error as BusinessError).message;
610e41f4b71Sopenharmony_ci    console.log('error:' + code + ',' + message);
611e41f4b71Sopenharmony_ci  }
612e41f4b71Sopenharmony_ci  ```
613e41f4b71Sopenharmony_ci
614e41f4b71Sopenharmony_ci## getCfgFilesSync<sup>11+</sup>
615e41f4b71Sopenharmony_ci
616e41f4b71Sopenharmony_cigetCfgFilesSync(relPath: string, followMode?: FollowXMode, extra?: string): Array&lt;string&gt;
617e41f4b71Sopenharmony_ci
618e41f4b71Sopenharmony_ci根据提供的跟随模式返回指定文件名所有的文件列表。
619e41f4b71Sopenharmony_ci
620e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Customization.ConfigPolicy
621e41f4b71Sopenharmony_ci
622e41f4b71Sopenharmony_ci**参数:**
623e41f4b71Sopenharmony_ci
624e41f4b71Sopenharmony_ci| 参数名     | 类型                          | 必填 | 说明                                                   |
625e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | ---- | ------------------------------------------------------ |
626e41f4b71Sopenharmony_ci| relPath    | string                        | 是   | 配置文件名                                             |
627e41f4b71Sopenharmony_ci| followMode | [FollowXMode](#followxmode11) | 否   | 跟随模式,不设置时,默认使用DEFAULT                    |
628e41f4b71Sopenharmony_ci| extra      | string                        | 否   | 用户自定义跟随规则,仅在followMode为USER_DEFINED时必填 |
629e41f4b71Sopenharmony_ci
630e41f4b71Sopenharmony_ci**错误码**:
631e41f4b71Sopenharmony_ci
632e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
633e41f4b71Sopenharmony_ci
634e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                       |
635e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------------------------------------- |
636e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3.Parameter verification failed.|
637e41f4b71Sopenharmony_ci
638e41f4b71Sopenharmony_ci**返回值:**
639e41f4b71Sopenharmony_ci
640e41f4b71Sopenharmony_ci| 类型                | 说明     |
641e41f4b71Sopenharmony_ci| ------------------- | -------- |
642e41f4b71Sopenharmony_ci| Array&lt;string&gt; | 文件列表 |
643e41f4b71Sopenharmony_ci
644e41f4b71Sopenharmony_ci
645e41f4b71Sopenharmony_ci**示例:**
646e41f4b71Sopenharmony_ci
647e41f4b71Sopenharmony_ci  ```ts
648e41f4b71Sopenharmony_ci  import { BusinessError } from '@ohos.base';
649e41f4b71Sopenharmony_ci
650e41f4b71Sopenharmony_ci  try {
651e41f4b71Sopenharmony_ci    let relpath: string = 'etc/config.xml';
652e41f4b71Sopenharmony_ci    let extra: string = 'etc/carrier/${telephony.sim.opkey0}';
653e41f4b71Sopenharmony_ci    let result: Array<string> = configPolicy.getCfgFilesSync(relpath, configPolicy.FollowXMode.USER_DEFINED, extra);
654e41f4b71Sopenharmony_ci    console.log('result is ' + result);
655e41f4b71Sopenharmony_ci  } catch (error) {
656e41f4b71Sopenharmony_ci    let code = (error as BusinessError).code;
657e41f4b71Sopenharmony_ci    let message = (error as BusinessError).message;
658e41f4b71Sopenharmony_ci    console.log('error:' + code + ',' + message);
659e41f4b71Sopenharmony_ci  }
660e41f4b71Sopenharmony_ci  ```
661e41f4b71Sopenharmony_ci
662e41f4b71Sopenharmony_ci## getCfgDirListSync<sup>11+</sup>
663e41f4b71Sopenharmony_ci
664e41f4b71Sopenharmony_cigetCfgDirListSync(): Array&lt;string&gt;
665e41f4b71Sopenharmony_ci
666e41f4b71Sopenharmony_ci返回配置层级目录列表。
667e41f4b71Sopenharmony_ci
668e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.Customization.ConfigPolicy
669e41f4b71Sopenharmony_ci
670e41f4b71Sopenharmony_ci**返回值:**
671e41f4b71Sopenharmony_ci
672e41f4b71Sopenharmony_ci| 类型                | 说明             |
673e41f4b71Sopenharmony_ci| ------------------- | ---------------- |
674e41f4b71Sopenharmony_ci| Array&lt;string&gt; | 配置层级目录列表 |
675e41f4b71Sopenharmony_ci
676e41f4b71Sopenharmony_ci
677e41f4b71Sopenharmony_ci**示例:**
678e41f4b71Sopenharmony_ci
679e41f4b71Sopenharmony_ci  ```ts
680e41f4b71Sopenharmony_ci  import { BusinessError } from '@ohos.base';
681e41f4b71Sopenharmony_ci
682e41f4b71Sopenharmony_ci  try {
683e41f4b71Sopenharmony_ci    let result: Array<string> = configPolicy.getCfgDirListSync();
684e41f4b71Sopenharmony_ci    console.log('result is ' + result);
685e41f4b71Sopenharmony_ci  } catch (error) {
686e41f4b71Sopenharmony_ci    let code = (error as BusinessError).code;
687e41f4b71Sopenharmony_ci    let message = (error as BusinessError).message;
688e41f4b71Sopenharmony_ci    console.log('error:' + code + ',' + message);
689e41f4b71Sopenharmony_ci  }
690e41f4b71Sopenharmony_ci  ```
691e41f4b71Sopenharmony_ci
692e41f4b71Sopenharmony_ci## FollowXMode<sup>11+</sup>
693e41f4b71Sopenharmony_ci
694e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Customization.ConfigPolicy
695e41f4b71Sopenharmony_ci
696e41f4b71Sopenharmony_ci| 名称             | 值  | 说明                                                                                                                       |
697e41f4b71Sopenharmony_ci| ---------------- | --- | -------------------------------------------------------------------------------------------------------------------------- |
698e41f4b71Sopenharmony_ci| DEFAULT          | 0   | 默认模式,此模式下会根据各配置层级下的followx_file_list.cfg文件配置的跟随规则进行文件查找。                                |
699e41f4b71Sopenharmony_ci| NO_RULE_FOLLOWED | 1   | 不跟随模式,此模式下不会使用任何跟随规则,即使存在followx_file_list.cfg文件。                                              |
700e41f4b71Sopenharmony_ci| SIM_DEFAULT      | 10  | 跟随默认卡模式,此模式下会根据默认卡的opkey在各配置层级下的etc/carrier/${opkey}下查找文件。                                |
701e41f4b71Sopenharmony_ci| SIM_1            | 11  | 跟随卡1模式,此模式下会根据卡1的opkey在各配置层级下的etc/carrier/${opkey}下查找文件。                                      |
702e41f4b71Sopenharmony_ci| SIM_2            | 12  | 跟随卡2模式,此模式下会根据卡2的opkey在各配置层级下的etc/carrier/${opkey}下查找文件。                                      |
703e41f4b71Sopenharmony_ci| USER_DEFINED     | 100 | 用户自定义模式,此模式会根据入参extra提供的跟随规则进行配置文件获取。此模式会忽略各配置层级下的followx_file_list.cfg文件。 |
704