我有多个进程写入相同的XML文件。我正在使用NativeXML库。
我希望在任何进程写入文件时锁定我的文件,以便文件中的数据不会被覆盖。
答案 0 :(得分:0)
创建文件时,使用独占权限创建文件,或者至少禁用写入访问共享,然后根据需要写入文件。在你先关闭它之前,没有其他人能够打开文件进行写作。
事实上,NativeXML在通过SaveToFile()
方法将XML保存到文件时已经完全正确。它使用TFileStream
,这是创建新文件时TFileSteam
的默认行为。
但是,如果您需要更多地控制访问权限,那么您可以创建自己的TFileStream
对象,以便根据需要填写其构造函数参数。或者创建一个THandleStream
对象,该对象引用您直接使用Window的CreateFile()
API创建的文件句柄。然后,您可以通过其SaveToStream()
方法将NativeXml写入该流。