在使用Delphi写入XML文件时,有什么办法可以锁定XML文件吗?

时间:2014-11-17 09:44:04

标签: delphi delphi-6

我有多个进程写入相同的XML文件。我正在使用NativeXML库。

我希望在任何进程写入文件时锁定我的文件,以便文件中的数据不会被覆盖。

1 个答案:

答案 0 :(得分:0)

创建文件时,使用独占权限创建文件,或者至少禁用写入访问共享,然后根据需要写入文件。在你先关闭它之前,没有其他人能够打开文件进行写作。

事实上,NativeXML在通过SaveToFile()方法将XML保存到文件时已经完全正确。它使用TFileStream,这是创建新文件时TFileSteam的默认行为。

但是,如果您需要更多地控制访问权限,那么您可以创建自己的TFileStream对象,以便根据需要填写其构造函数参数。或者创建一个THandleStream对象,该对象引用您直接使用Window的CreateFile() API创建的文件句柄。然后,您可以通过其SaveToStream()方法将NativeXml写入该流。