私はVB.Netを使用してExcelファイル回復プログラムを作成しています。これは、 Microsoftが推奨する方法を収集してアクセスするのに便利な場所を目指しています。私のおそらく不器用で、エラーがいっぱいで、十分なクリーンアップコードがないことに興味がある場合は、ここにあります:http: //pastebin.com/v4GgDteY。グラフマクロテーブルのリカバリはまだテストしていませんが、基本的な機能は機能しているようです。
シャドウコピーサービスがオンで、以前のコピーがある場合、VistaおよびWindows7のユーザーはアプリケーション内のファイルの以前のバージョンのリストを提供されることで恩恵を受けることができると思いました。どうすればよいですか?
私はたくさんのウェブページを見ましたが、簡単にコードをベビーベッドに入れることができませんでした。私が推測する1つの可能性は、シェルを介してvssadminを使用することですが、それはかなり面倒です。以前のバージョンのプロパティシートのようなダイアログボックスを表示して、ユーザーが以前のバージョンの1つを選択できるようにしたいだけです。プログラムでコンテキストメニューと[以前のバージョンの選択を復元]を呼び出すことで、シェルを介して以前のバージョンのプロパティシートを表示できたと思いますが、VistaHomeBasicおよびPremiumユーザー向けのリストも提供できるようにしたいと思います。以前のバージョンがまだ存在しているように見えても、そのタブにアクセスできます。さらに、可能であれば、XPユーザーに同じ機能を提供したいと思いますが、XPではシステムファイルのみがシャドウコピーに含まれていると確信しています。
Shadow Copy ServiceでMSDNを確認し、すべてのページを確認しました。また、AlphaVSSとAlphaFS、およびすべてのコメントも確認しました。AlphaVssとAlphFSを使用して、次のことを行う必要があると思いますか?
- コンピューターに存在するスナップショット/復元ポイントのリストを確認します。
- それらのスナップショットをマウントします。
- マウントされたボリューム内で、ユーザーが回復したいExcelファイルに移動し、それらのパスのリストを作成します。
- パスのリストが手元にあるので、ある種のdiffプログラムと比較して、ファイルのシャドウコピーを元のファイルと比較してください。
- リカバリターゲットとは異なるシャドウコピーの最も若いバージョンまたは最も古いバージョン(重要ではないと思います)を引き出します。
- 異なることが判明したファイルのバージョンをリストします。
これは面倒で遅いように見えますが、おそらく最も速い方法です。私は今行く方法であるいくつかの確認が必要です。