我在 GSettings 文档中读到:
键名仅限于小写字符、数字和“-”。此外,名称必须以小写字符开头,不得以“-”结尾,并且不得包含连续的破折号
但是没有关于路径名的注释,除了不包括连续的斜杠 ( /)。我的用例是为基于设备的设置生成子目录(从可重定位模式),我想知道是否应该清理任何字符的字符串。
路径名上有注释,很完整:
路径必须以正斜杠字符 ('/') 开头和结尾,并且不得包含两个连续的斜杠字符。应根据与设置所属的程序或库关联的域名来选择路径。路径的示例是“/org/gtk/settings/file-chooser/”和“/ca/desrt/dconf-editor/”。路径不应像在 GConf 中那样以“/apps/”、“/desktop/”或“/system/”开头。
(来自文档)。
验证它们的代码如下:
static gboolean
path_is_valid (const gchar *path)
{
if (!path)
return FALSE;
if (path[0] != '/')
return FALSE;
if (!g_str_has_suffix (path, "/"))
return FALSE;
return strstr (path, "//") == NULL;
}
(来自gsettings.c)。
所以文档是完整的——它提到了代码检查的所有内容。
根据您的设备的识别方式,您可能确实需要进行一些转义或清理以删除斜杠,以防万一您最终会出现连续的斜杠。除此之外,如果您愿意,您只需要对事物进行清理以使其易于阅读且易于调试。