# Configuration Policy The configuration policy provides APIs for obtaining the custom configuration directory and file path based on the predefined custom configuration level. > **NOTE** > > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. > > The APIs of this module are system APIs and cannot be called by third-party applications. ## Modules to Import ```js import configPolicy from '@ohos.configPolicy'; ``` ## getOneCfgFile getOneCfgFile(relPath: string, callback: AsyncCallback<string>) Obtains the path of a configuration file with the specified name and highest priority. This API uses an asynchronous callback to return the result. For example, if the **config.xml** file is stored in **/system/etc/config.xml** and **/sys_pod/etc/config.xml** (in ascending order of priority), then **/sys_pod/etc/config.xml** is returned. **System capability**: SystemCapability.Customization.ConfigPolicy **Parameters** | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | relPath | string | Yes| Name of the configuration file.| | callback | AsyncCallback<string> | Yes| Callback used to return the path of the configuration file.| **Example** ```js configPolicy.getOneCfgFile('etc/config.xml', (error, value) => { if (error == undefined) { console.log("value is " + value); } else { console.log("error occurs "+ error); } }); ``` ## getOneCfgFile getOneCfgFile(relPath: string): Promise<string> Obtains the path of a configuration file with the specified name and highest priority. This API uses a promise to return the result. **System capability**: SystemCapability.Customization.ConfigPolicy **Parameters** | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | relPath | string | Yes| Name of the configuration file.| **Return value** | Type| Description| | -------- | -------- | | Promise<string> | Promise used to return the path of the configuration file.| **Example** ```js configPolicy.getOneCfgFile('etc/config.xml').then(value => { console.log("value is " + value); }).catch(error => { console.log("getOneCfgFile promise " + error); }); ``` ## getCfgFiles getCfgFiles(relPath: string, callback: AsyncCallback<Array<string>>) Obtains all configuration files with the specified name and lists them in ascending order of priority. This API uses an asynchronous callback to return the result. For example, if the **config.xml** file is stored in **/system/etc/config.xml** and **/sys_pod/etc/config.xml**, then **/system/etc/config.xml, /sys_pod/etc/config.xml** is returned. **System capability**: SystemCapability.Customization.ConfigPolicy **Parameters** | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | relPath | string | Yes| Name of the configuration file.| | callback | AsyncCallback<Array<string>> | Yes| Callback used to return the file list.| **Example** ```js configPolicy.getCfgFiles('etc/config.xml', (error, value) => { if (error == undefined) { console.log("value is " + value); } else { console.log("error occurs "+ error); } }); ``` ## getCfgFiles getCfgFiles(relPath: string): Promise<Array<string>> Obtains all configuration files with the specified name and lists them in ascending order of priority. This API uses a promise to return the result. **System capability**: SystemCapability.Customization.ConfigPolicy **Parameters** | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | relPath | string | Yes| Name of the configuration file.| **Return value** | Type| Description| | -------- | -------- | | Promise<Array<string>> | Promise used to return the file list.| **Example** ```js configPolicy.getCfgFiles('etc/config.xml').then(value => { console.log("value is " + value); }).catch(error => { console.log("getCfgFiles promise " + error); }); ``` ## getCfgDirList getCfgDirList(callback: AsyncCallback<Array<string>>) Obtains the configuration level directory list. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Customization.ConfigPolicy **Parameters** | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | callback | AsyncCallback<Array<string>> | Yes| Callback used to return the configuration level directory list.| **Example** ```js configPolicy.getCfgDirList((error, value) => { if (error == undefined) { console.log("value is " + value); } else { console.log("error occurs "+ error); } }); ``` ## getCfgDirList getCfgDirList(): Promise<Array<string>> Obtains the configuration level directory list. This API uses a promise to return the result. **System capability**: SystemCapability.Customization.ConfigPolicy **Return value** | Type| Description| | -------- | -------- | | Promise<Array<string>> | Promise used to return the configuration level directory list.| **Example** ```js configPolicy.getCfgDirList().then(value => { console.log("value is " + value); }).catch(error => { console.log("getCfgDirList promise " + error); }); ```