GSetting路径名有哪些限制?

时间:2017-10-28 12:53:40

标签: glib gsettings

我已在GSettings文档中读到:

  

键名仅限于小写字符,数字和' - '。此外,名称必须以小写字母开头,不得以' - '结尾,并且不得包含连续短划线

但是没有关于路径名的注释,其他不包括连续斜杠(/)。我的用例是为基于设备的设置生成子目录(来自可重定位的模式),并且我想知道是否应该清理任何字符的字符串。

1 个答案:

答案 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)。

所以文档已经完成 - 它提到了代码检查的所有内容。

根据您的设备识别方式,您可能希望进行一些转义或消毒以删除斜线,以防您最终使用连续斜线。除此之外,如果你愿意,你只需要清理东西,使它们具有人类可读性和易于调试性。