如何确定目录是否在当前事务中创建?

How to determine if directory was created in current transaction?

我有一些file/directory基于TxF系统的管理工具。基本上它是这样工作的:

  1. 我正在使用 CreateTransaction 函数创建交易。
  2. 在代码后面的某个地方,我使用 CreateDirectoryTransacted 函数创建了许多目录。
  3. 稍后我需要确定我是否已经在给定路径中从第 (2) 点创建了目录,该目录仍在该事务中(到目前为止没有调用 CommitTransaction)。

是否有一些替代品 PathFileExists 但使用交易系统?

我已经使用 CreateDirectoryTransacted 和错误代码 ERROR_ALREADY_EXISTS 解决了这个问题。

方法如下:
CreateDirectoryTransacted returns 种不同的错误代码,其中之一是 ERROR_ALREADY_EXISTS。我可以使用此特定错误来确定目录是否已存在。如果没有,并且我刚刚创建了它,则无需担心 - 我可以使用 RemoveDirectoryTransacted 在同一事务中安全地删除它。我知道如果发生大量创建-> 删除目录,会有一些小的开销,但这不是我的情况。这就是我解决这个问题的方法。

如果有人有更好的解决方案 - 我愿意将正确的答案更改为更通用的解决方案。