【发布时间】:2011-06-01 12:37:03
【问题描述】:
您知道 Delphi 是否有任何事务性文件系统实现?它至少应该可以在 Windows XP 和更高版本上运行(因此不能使用新的 TxF 功能)。它应该允许执行多个文件操作(删除、移动、复制、重命名)作为事务并提供恢复。
谢谢!
【问题讨论】:
-
你在保护什么?另外,您是在谈论使用容器文件,还是只是在“普通”文件系统上执行事务操作?因为如果 FS 本身不支持事务,您不会真的 执行后者。您可以在很多情况下伪造它,但您可能必须自己编写所有支持框架。即使使用容器,您仍然需要处理底层 FS 的语义。
-
@afrazier:后一种:普通文件系统上的事务操作。例如:如果复制了100个文件,第87个失败,则应该删除前86个已经复制的文件。
-
如何为 Delphi 实现事务文件系统?如果您必须在操作系统中使用它,则必须为操作系统实现它。如果您只想在应用程序中使用它,请使用数据库 - 它们提供事务支持。
-
@gabr:我想在我的应用程序中使用它,并且我知道数据库提供 ACID 事务,但在这种情况下,这既不是问题也不是可能的。我必须进行文件操作,我想尽可能接近 ACID。顺便说一句:有 .NET 和 Java 实现可以解决这个问题,例如:onjava.com/pub/a/onjava/2001/11/07/atomic.html 只是想问一下 Delphi 世界中是否有可用的东西。
-
@Smasher:那么你真的需要底层文件系统的支持。您可以通过更改原始副本和重命名交换来“伪造”它,但这需要您的应用程序设计为以这种方式运行。
标签: delphi transactions io