ConfigFile
继承
简要描述
用于处理INI格式文件的帮助类。
描述
该帮助类可用于使用INI格式在文件系统上存储Variant值。存储的值由一个段名和一个键名标识:
[section]
some_key=42
string_example="Hello World!"
a_vector=Vector3( 1, 0, 2 )
可以将存储的数据保存到文件或从文件解析,也可以直接使用ConfigFile对象而无需访问文件系统。
以下示例说明如何从系统中解析INI格式的文件,读取其内容并在其中存储新值:
var config = ConfigFile.new()
var err = config.load("user://settings.cfg")
if err == OK: # 如果不是OK,则文件加载出现问题
# 查找display/width,如果缺少则默认为1024
var screen_width = config.get_value("display", "width", 1024)
# 当且仅当尚未定义时才存储变量
if not config.has_section_key("audio", "mute"):
config.set_value("audio", "mute", false)
# 通过覆盖先前的文件来保存更改
config.save("user://settings.cfg")
请记住,段名和属性名不能包含空格。在保存和加载时,空格后的所有内容都将被忽略。
ConfigFiles还可以包含以分号(;
)开头的手动编写的注释行。解析文件时,这些行将被忽略。请注意,保存ConfigFile时,注释将丢失。这对于专用的服务器配置文件仍然很有用,这些文件通常在没有明确的用户操作的情况下永远不会被覆盖。
方法
返回值类型 | 方法名称 |
---|---|
void | erase_section(section: String) |
void | erase_section_key(section: String, key: String) |
PoolStringArray | get_section_keys(section: String) const |
PoolStringArray | get_sections() const |
Variant | get_value(section: String, key: String, default: Variant = null) const |
bool | has_section(section: String) const |
bool | has_section_key(section: String, key: String) const |
int | load(path: String) |
int | load_encrypted(path: String, key: PoolByteArray) |
int | load_encrypted_pass(path: String, password: String) |
int | parse(data: String) |
int | save(path: String) |
int | save_encrypted(path: String, key: PoolByteArray) |
int | save_encrypted_pass(path: String, password: String) |
void | set_value(section: String, key: String, value: Variant) |
方法说明
- erase_section erase_section(section: String)
删除指定的段以及内部的所有键值对。如果该段不存在,则会引发错误。
- erase_section_key erase_section_key(section: String, key: String)
删除段中的指定键。如果该段或键不存在,则会引发错误。
- get_section_keys get_section_keys(section: String) const
返回指定段中所有已定义键的数组。如果该段不存在,则会引发错误并返回一个空数组。
- get_sections get_sections() const
返回所有已定义段的数组。
- get_value get_value(section: String, key: String, default: Variant = null) const
返回指定段和键的当前值。如果该段或键都不存在,则该方法返回default
值。如果未指定default
或将其设置为null
,则会引发错误。
- has_section has_section(section: String) const
如果指定的段存在,则返回true
。
- has_section_key has_section_key(section: String, key: String) const
如果指定的段键对存在,则返回true
。
- load load(path: String)
加载配置文件。解析文件的内容并将其加载到调用该方法的ConfigFile对象中。
返回Error常量之一(成功时返回OK
)。
- load_encrypted load_encrypted(path: String, key: PoolByteArray)
加载加密配置文件,使用提供的key
对其解密。解析文件的内容并将其加载到调用该方法的ConfigFile对象中。
返回Error常量之一(成功时返回OK
)。
- load_encrypted_pass load_encrypted_pass(path: String, password: String)
加载加密配置文件,使用提供的password
对其解密。解析文件的内容并将其加载到调用该方法的ConfigFile对象中。
返回Error常量之一(成功时返回OK
)。
- parse parse(data: String)
将字符串解析为配置文件的内容。字符串被解析并加载到调用该方法的ConfigFile对象中。
返回Error常量之一(成功时返回OK
)。
- save save(path: String)
将ConfigFile对象的内容保存到文件中。输出文件使用INI格式。
返回Error常量之一(成功时返回OK
)。
- save_encrypted save_encrypted(path: String, key: PoolByteArray)
使用提供的key
对其进行加密,将ConfigFile对象的内容保存到使用AES-256加密的文件中。输出文件使用INI格式。
返回Error常量之一(成功时返回OK
)。
- save_encrypted_pass save_encrypted_pass(path: String, password: String)
使用提供的password
对其进行加密,将ConfigFile对象的内容保存到使用AES-256加密的文件中。输出文件使用INI格式。
返回Error常量之一(成功时返回OK
)。
- set_value set_value(section: String, key: String, value: Variant)
为指定的段和键设置一个值。如果该段或键不存在,则将创建它们。设置null
值将删除指定的键(如果存在),如果删除了该键,如果该段为空,则将其删除。