我正在用 VB.Net 编写一个 Excel 文件恢复程序,它试图成为一个方便的地方来收集和访问Microsoft 推荐的方法。如果您对我可能很笨拙、充满错误且缺少足够的清理代码感兴趣,请访问:http: //pastebin.com/v4GgDteY。尽管我还没有测试过图形宏表恢复,但基本功能似乎可以工作。
我突然想到,如果 Shadow Copy Service 已打开并且存在以前的副本,Vista 和 Windows 7 用户可以从在我的应用程序中获得文件的以前版本列表中受益。我该怎么做呢?
我查看了很多网页,但发现不容易编写代码。我猜一种可能性是通过 shell 使用 vssadmin ,但这很麻烦。我只想显示一个对话框,如以前的版本属性表,并允许用户选择以前的版本之一。我想我可以通过以编程方式调用上下文菜单和“恢复以前的版本选择”来通过 shell 显示以前版本的属性表,但是我也希望能够为那些没有的 Vista Home Basic 和 Premium 用户提供列表即使显然以前的版本仍然存在,也无法访问该选项卡。此外,如果可能的话,我想为 XP 用户提供相同的功能,尽管我很确定 XP 只有系统文件在卷影副本中。
我查看了 Shadow Copy Service 上的 MSDN 并浏览了所有页面,还查看了 AlphaVSS 和 AlphaFS 以及所有评论。我有点猜测我需要使用 AlphaVss 和 AlphFS 并执行以下操作?
- 找出计算机上存在的快照/还原点列表。
- 挂载这些快照。
- 在已安装的卷中导航到用户想要恢复的 Excel 文件并列出这些路径。
- 有了方便的路径列表,与某种差异程序比较,文件的影子副本与原始文件。
- 拉出与恢复目标不同的那些卷影副本的最年轻或最旧版本(我认为这并不重要)。
- 列出发现不同的文件版本。
这看起来既麻烦又缓慢,但也许是最快的做事方式。我只需要一些确认,这是现在要走的路。