我有一个程序,您可以在其中编写注释并将其保存在.txt文件中。 每个笔记都有标题和文字。 注释的标题是没有“.txt”后缀的文件名。 因此,在我的程序中,有一个包含所有注释的列表框,然后单击标题即可阅读注释。 我的问题是我不能用这些字符写一个标题:\ /:*? “<> |因为文件名中不允许这样做。
我怎么能解决这个问题?我认为解决方案可能是创建一个仅包含文件名的新.txt文件,然后根据行号将文件名与注释相关联。
有更简单的解决方案吗? 如果是的话,你能告诉我吗? 谢谢!
答案 0 :(得分:2)
单独的索引文件的优点是您可以轻松获得所有标题。缺点是除非您非常小心,否则它可能会过时,并限制对底层文件系统的访问。
就个人而言,我可能想要将每个文本文件的第一行作为标题,并使文件名成为已清理的标题。这意味着您可以非常快速地向实际标题显示 非常接近 ,但您可以选择对文件进行异步循环并更新实际标题,如果它们是不同的...即,如果用户输入的标题是“什么< do!我这样做?”他们可能会非常简短地看到“我该怎么做”,很快就会被“做什么,做什么,我做什么?”所取代。 - 并且没有索引文件损坏的风险。
答案 1 :(得分:1)
您可以使用您的唯一字符串维护特殊字符词典,例如:
Dictionary<string, string> specialCharDictionary = new Dictionary<string, string>();
specialCharDictionary.Add("\\", "Slash");
specialCharDictionary.Add("/", "BSlash");
//....
然后使用它来创建和访问文件名。
答案 2 :(得分:0)
你可以base-64 encode the filename或者创建文件XML而不是纯文本,然后对实体进行编码。
答案 3 :(得分:0)
用户是否给出了标题?如果是这样,有一种简单的方法来验证标题。只需检查给定标题是否包含禁止字符之一。然后你可以删除它们并使用剥离的结果,或者你可以向用户显示一条错误消息,说明不允许这些字符。
This question提供了有关在字符串中查找特殊字符的答案。希望这有帮助!