我已在GSettings文档中读到:
键名仅限于小写字符,数字和' - '。此外,名称必须以小写字母开头,不得以' - '结尾,并且不得包含连续短划线
但是没有关于路径名的注释,其他不包括连续斜杠(/
)。我的用例是为基于设备的设置生成子目录(来自可重定位的模式),并且我想知道是否应该清理任何字符的字符串。
答案 0 :(得分:1)
路径名上有 注释,它们是完整的:
路径必须以正斜杠字符(' /')开头并以其结尾,并且不得包含两个连续的斜杠字符。应根据与设置所属的程序或库关联的域名来选择路径。路径的示例是" / org / gtk / settings / file-chooser /"和" / ca / desrt / dconf-editor /"。路径不应以" / apps /"," / desktop /"开头。或" / system /"正如他们在GConf中经常做的那样。
(来自the documentation)。
验证它们的代码如下:
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)。
所以文档已经完成 - 它提到了代码检查的所有内容。
根据您的设备识别方式,您可能希望进行一些转义或消毒以删除斜线,以防您最终使用连续斜线。除此之外,如果你愿意,你只需要清理东西,使它们具有人类可读性和易于调试性。