在运行时是否可以在程序中修改和保存XML文件而不是外部文件?

时间:2014-09-21 19:57:38

标签: c# xml winforms treeview

我试图寻找这个问题的答案,但没有找到任何答案,也许我没有使用正确的词语,但没有出现......也许是因为它不可能?

我想要一个将与树视图同步的XML文件,并且会对树视图进行更改以影响XML文件,然后我需要保存它,但我不能给用户直接访问这个文件,所以我想用程序编译它,问题是,是否有可能以这种方式修改和保存XML?

非常感谢!

雷。

  

附加信息(或最后一个问题):

     

我可以在我的程序中以某种方式保存XML文档   即使我要杀了我的程序,以后可以使用吗? (而不是作为   用户可访问的XML文件?)我所知道的“资源”怎么样?   那里有XML文件/ doc(?),但我能修改并保留   我会做什么改变?

2 个答案:

答案 0 :(得分:1)

总有可能有人复制文件,尤其是当他有管理员权限时。如果您不希望用户通过编辑来处理该文件,您可以考虑加密。或者在XML文件中添加某种校验和(不是作为标记,而是作为XML注释,以便您的解析器可以忽略它,但您仍然可以读取它并使用它来检查文件是否未被泄露)。加密会使文件不可读;校验和将保持文件的可读性,但如果没有检测就很难改变它。

答案 1 :(得分:1)

XML文件究竟是什么?我几乎可以肯定你的意思是一个XML文档。

您可以将解析后的XML文档作为对象保留在内存中。然后,您可以根据需要修改文档树。我不确定你的意思"保存它"但请确保您可以以二进制格式或XML格式保存对象。树不会自动序列化为文件。

我建议您将XML保留为内存中的文档树,而不是将其写入文件,直到您完成修改。这是否有意义取决于您的应用程序。

在修改树时,您希望维护文件的原因是什么?也许您正在构建XML编辑器?

编辑:还有一个选项:将XML保存在数据库中。您可能在那里有一个XML类型的列,具体取决于您获得的数据库。那么即使程序崩溃也应该是安全的。