谁能澄清一个问题?我在自制备份实用程序*中使用VSS API(使用VSS2008的C++和在XP SP3上运行的最新SDK)。

对于没有子文件夹的文件夹(即我的电子邮件和SQL服务器卷),VSS快照操作可以正常工作。但是,当我对包含子文件夹的文件夹进行快照时,嵌套结构在快照中被“展平”了-所有子目录都不再存在。

所以这是一个问题:我知道XP上对VSS的支持有些限制,但是有没有办法指定快照是非递归的呢?该文档不是很有帮助...

  • 我真的厌倦了 buggy 垃圾,这种垃圾会浪费大量的船只,每隔几天就会失败,所以我想自己动手。它将在某个时候进入CodeProject。如果有人感兴趣,请告诉我,您可以在准备就绪时获得(源)副本...

  • Thx ++

    杰瑞

    最佳答案

    您的问题令人困惑...

    VSS无法在“文件夹”级别工作。它工作在“音量”级别。

    您“快照”一个卷,您将拥有一个设备路径,您可以使用文件系统api(会自动将设备卷与文件系统挂载)在文件一个文件中“打开”,也可以直接访问设备(扇区按部门)。

    备份已捕获的设备卷上的所有文件应该很容易(不要忘记NTFS文件的所有文件流和ACL),您的问题将是还原它们... VSS在还原时将无济于事。主要问题将是还原系统卷,在该卷上您将需要另一个OS才能启动到WinPE或DOS等。如果您不担心系统卷,则恢复起来很容易。

    如果按扇区备份数据,则可以得到额外的好处,即为它编写卷设备驱动程序(看起来像是卷或HD),则Windows会为其自动加载文件系统驱动程序。这为您提供了一个免费的资源管理器应用程序,这是大多数基于扇区的备份应用程序所要做的。同时也为他们提供了虚拟机的可能性。

    即使您正在执行简单的文件备份,它也有助于理解文件系统(NTFS,FAT等),以便您知道可以/应该备份和还原的内容。您知道NTFS重新解析点是什么吗?如果在备份过程中碰到一个,您将如何处理?您知道Windows实际如何启动,以及需要备份和还原以及“修补”哪些文件才能启动的机会。在还原时,如何最好地布置NTFS卷,以免影响已还原卷上的NTFS性能?您是否要支持将系统卷还原到新硬件,为了有机会工作而需要做什么?问题是无止境的。

    系统备份/还原并非易事,有很多情况下(请参阅上面的一些问题)在您遇到之前是不知道的。

    祝您项目好运,我希望我对您的期望不高,我只是说有很多工作可以交付大多数人不知道的备份应用程序。

    10-04 14:28