设置路径名有哪些限制



我在GSettings文档中读到:

密钥名称仅限于小写字符、数字和'-'。此外,名称必须以小写字符开头,不能以"-"结尾,并且不能包含连续的短划线

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

路径名上有注释,它们是完整的:

路径必须以正斜杠字符('/')开头和结尾,并且不能包含两个连续的斜杠字符。应根据与设置所属的程序或库关联的域名来选择路径。路径的示例有".org/gtk/settings/file chooser/"one_answers"/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).

所以文档是完整的——它提到了代码检查的所有内容。

根据你的设备是如何被识别的,你可能确实想做一些逃逸或消毒来去除斜杠,以防你最终被连续斜杠。除此之外,如果你愿意的话,你只需要对东西进行消毒,使它们变得可读且易于调试。

相关内容

  • 没有找到相关文章