我有两个应用程序客户端和服务器应用程序。我的客户端应用程序正在检查xml然后上传它服务器。我的服务器应用程序正在读取此xml。这是senario。
我想在客户端向xml添加一个标志(例如ok,fail或0,1或true,false。)然后将其上传到服务器。在服务器应用程序中读取之前,它将检查标志然后读取xml。
注意:我的xml文件大小超过20 GB。
我尝试使用Windows API代码包添加或编辑文件属性,但我不能。
如何解决此问题?
答案 0 :(得分:1)
对于读写大型xml文件,您应该使用SAX方法而不是DOM。在C#中有一个xmlreader类,它使用SAX方法来读取和标记你的标志。
答案 1 :(得分:1)
如果您拥有对文件系统的完全访问权限并且它是NTFS,则您可以使用与该文件相关的alternate stream,但不包括数据。
例如,您可以通过执行以下操作在命令提示符下使用 TRUE 值编写一个名为 flag 的备用流:
echo TRUE > C:\Path\file.xml:flag
然后,您可以阅读信息流:
more < C:\Path\file.xml:flag
这不会改变文件内容。
对读/写NTFS备用流没有本机.NET支持。但您可以使用WinApi p / invoke访问这些流: https://stackoverflow.com/a/604970/122195