Я пишу программу восстановления файлов Excel с VB.Net, которая пытается быть удобным местом для сбора и доступа к рекомендуемым Microsoft методам . Если вы интересуетесь моими, вероятно, грязными, заполненными ошибками и нехваткой достаточного кода очистки, то они здесь: http://pastebin.com/v4GgDteY. Кажется, что базовая функциональность работает, хотя я еще не тестировал восстановление таблицы макроса графа.
Мне пришло в голову, что пользователям Vista и Windows 7 может быть полезно, если мне предложат список предыдущих версий файла в моем приложении, если служба теневого копирования включена и есть предыдущие копии. Как мне это сделать?
Я просмотрел множество веб-страниц, но не нашел легкого кода для кроватки. Я предполагаю, что одной из возможностей было бы использовать vssadmin через оболочку, но это довольно громоздко. Я просто хочу отобразить диалоговое окно, подобное списку свойств «Предыдущие версии», и позволить пользователям выбрать одну из предыдущих версий. Я думаю, что я мог бы просто отобразить лист свойств предыдущей версии через оболочку, программно вызвав контекстное меню и «Выбор предыдущих версий», однако я также хочу иметь возможность предложить список для пользователей Vista Home Basic и Premium, которые не У него нет доступа к этой вкладке, хотя, очевидно, предыдущие версии все еще существуют. Кроме того, если это возможно, я бы хотел предложить пользователям XP ту же функциональность, хотя я уверен, что с XP только системные файлы находятся в теневых копиях.
Я посмотрел MSDN в службе теневого копирования и просмотрел все страницы, также я посмотрел AlphaVSS и AlphaFS и все комментарии. Я догадываюсь, что мне нужно использовать AlphaVss и AlphFS и делать следующее?
- Узнайте список снимков / точек восстановления, существующих на компьютере.
- Смонтируйте эти снимки.
- Перейдите в подключенных томах к файлу Excel, который пользователь хочет восстановить, и составьте список этих путей.
- Имея под рукой список путей, сравните с какой-нибудь программой сравнения теневые копии файлов с оригиналом.
- Вытащите самую младшую или самую старую версию (я не думаю, что это имеет значение) тех теневых копий, которые отличаются от цели восстановления.
- Перечислите те версии файлов, которые могут быть разными.
Это кажется громоздким и медленным, но, возможно, это самый быстрый способ сделать что-то. Мне просто нужно какое-то подтверждение, что это путь.