我有一些基于 TxF 系统的文件/目录管理工具。基本上它是这样工作的:
- 我正在使用
CreateTransaction
函数创建事务。 - 在代码后面的某个地方,我使用
CreateDirectoryTransacted
函数创建了许多目录。 - 稍后我需要确定我是否已经从给定路径中的点 (2) 创建的目录仍在此事务中(
CommitTransaction
到目前为止没有调用)。
是否有一些替代品PathFileExists
但可以使用交易系统?
我已经设法使用CreateDirectoryTransacted
和错误代码解决了这个问题ERROR_ALREADY_EXISTS
。
方法如下:
CreateDirectoryTransacted
返回不同的错误代码,其中之一是ERROR_ALREADY_EXISTS
. 我可以使用这个特定的错误来确定目录是否已经存在。如果没有,并且我刚刚创建了它,则无需担心 - 我可以在同一事务中使用RemoveDirectoryTransacted
. 我知道如果发生很多创建->删除目录,将会有一些小的开销,但这不是我的情况。这就是我解决这个问题的方法。
如果有人有更好的解决方案的想法 - 我愿意将正确的答案更改为更通用的解决方案。