跳到主要内容

ConfigFile

继承

Reference

简要描述

用于处理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时,注释将丢失。这对于专用的服务器配置文件仍然很有用,这些文件通常在没有明确的用户操作的情况下永远不会被覆盖。

方法

返回值类型方法名称
voiderase_section(section: String)
voiderase_section_key(section: String, key: String)
PoolStringArrayget_section_keys(section: String) const
PoolStringArrayget_sections() const
Variantget_value(section: String, key: String, default: Variant = null) const
boolhas_section(section: String) const
boolhas_section_key(section: String, key: String) const
intload(path: String)
intload_encrypted(path: String, key: PoolByteArray)
intload_encrypted_pass(path: String, password: String)
intparse(data: String)
intsave(path: String)
intsave_encrypted(path: String, key: PoolByteArray)
intsave_encrypted_pass(path: String, password: String)
voidset_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值将删除指定的键(如果存在),如果删除了该键,如果该段为空,则将其删除。