1

我需要比我更聪明的人的帮助来解决这个难题。

我有一个注册表分支,我想将其转换为文件结构。用户对文件结构进行更改,主要是因为 luser 更容易操作文件。然后我可以将这些更改写回注册表。(我意识到这里的风险,请不要告诉我这样做是“坏的”,我知道。此代码用于个人项目,不用于任何生产模型!)

到目前为止,我的代码效果很好:

良好的注册表值 这很好地转化为: 良好的探索者价值观

但是,由于注册表不是文件结构,我们可以有“坏”键,例如:

坏钥匙

这会在目录 ...\Branch2\SubBranch1\Apple 中生成一个名为 Banana 的文件。明显地。我想过用一些东西替换'\',但是什么?

以“。”结尾的键或值也存在问题。该文件将没有句点。

有没有人有解决方案(或建议)来获得预期的结果?

4

2 回答 2

0

您需要处理几个字符 /:?"<>| 如果键值包含此字符之一,那么您不能将文件命名为与键值相同的名称我建议您使用 XML 结构它非常易于维护和操作

于 2014-07-17T13:54:41.490 回答
0

一个简单的字符替换映射应该可以满足您的需求。

反斜杠可能是阿拉伯问号:؟ 和斜线可能是希腊大写字母 omega 与 dasia 和 prosgegrammeni:ᾩ</p>

当然,您必须选择合法文件系统字符以及在真实注册表项中存在的可能性几乎为零的字符。但是 unicode“字母”非常大。应该问题不大。尾随期间可以以相同的方式处理。

charmap.exe是你的朋友

于 2012-09-21T17:20:32.020 回答