【问题标题】:Is there any way through which I can lock the XML file while I am writing into it using Delphi?在使用 Delphi 写入 XML 文件时,有什么方法可以锁定它?
【发布时间】:2014-11-17 09:44:04
【问题描述】:

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

我想在任何进程写入文件时锁定我的文件,以免文件中的数据被覆盖。

【问题讨论】:

    标签: delphi delphi-6


    【解决方案1】:

    当您创建一个文件时,使用独占权限创建它,或者至少禁用写访问共享,然后根据需要对其进行写入。除非您先将其关闭,否则其他人将无法打开该文件进行写入。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-07
      • 1970-01-01
      • 2016-06-25
      • 1970-01-01
      • 2021-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多