.NET - 从应用程序可靠地维护文件系统

时间:2009-08-20 03:12:28

标签: c# filesystems .net

我有一个混合应用程序,它在数据库和我的应用程序维护的物理文件存储中都有数据。由于我一直在开发我的应用程序,我偶尔遇到的情况是我正在移动或通过我的应用程序从硬盘驱动器中删除文件,无论出于什么原因会出现问题并抛出异常。目前我只是记录下来并继续前进。

假设删除或移动场景,当我抛出并记录异常时,我现在有一个胭脂或可能丢失的文件占用空间,并且还可能导致应用程序中的呈现错误。除了手动维护文件系统之外,还有哪些可靠的技术可以从应用程序维护文件系统?

我特别感兴趣的是如何确保在我的应用程序中调用Delete()的文件实际上已被删除。

2 个答案:

答案 0 :(得分:3)

如果您使用的是Vista或更高版本,则可以使用Transactional File System来确保您的操作是原子操作。你可以在Transactional File System Operations找到一些包装器等的例子。

答案 1 :(得分:2)

由于您已在应用程序中使用数据库,因此可以考虑创建一个表来跟踪文件系统操作。例如,您可以创建一个包含要执行的文件系统操作的详细信息的行,然后执行文件系统操作,并在成功时删除该行或在数据库中将其标记为已完成。如果您的应用程序失败和/或需要重新启动,这将提供一种简单的机制来确定哪些文件系统操作未成功完成并需要重试。