2010-12-14 14 views
0

私はサードパーティツールを使ってログテキストファイルを作成するプログラムを持っています。C#{GUID}ディレクトリに自動的にナビゲートする方法は?

ただし、ツールにはWindows XPの復元ポイントディレクトリが必要です。復元ポイントを格納するディレクトリは、 "C:\ System Volume Information_restore {GUID}"です。

_restore {GUID}フォルダには、すべての復元ポイントが含まれます。ただし、{GUID}は完全に乱数で、各コンピュータごとに異なります。 「C:\ System Volume Information」ディレクトリには、通常、「_random {GUID}」フォルダである1つのフォルダのみが含まれます。

したがって、C#プログラムでコードやメソッドを使用して、ツールのコマンド引数を自動的に入力する方法はありますか?

誰かがコードに関するアドバイスをしてもらえますか?ありがとう!

コード:

 Process process = new Process(); 
     process.StartInfo.FileName = @"C:\test\ftk\ripxp\ripxp.exe"; 
     // How to automatically navigate to the {GUID} folder? 
     process.StartInfo.Arguments = @"-r C:\test\ftk\ntuser.dat -d C:\System Volume Information\_restore{GUID} -p runmru"; 
     process.StartInfo.CreateNoWindow = false; 
     process.StartInfo.UseShellExecute = false; 
     process.StartInfo.RedirectStandardOutput = true; 
     process.StartInfo.RedirectStandardInput = true; 
     process.StartInfo.RedirectStandardError = true; 
     process.Start(); 

サードパーティ製のツール(2008 H. Carvey)引数:

C:\>ripxp -r d:\cases\ntuser.dat -d d:\cases\svi -p userassist 

答えて

0

フォルダを検索するディレクトリのリストをそのフォルダの場所とループを照会ないのはなぜ"_restore"で始まり、それをあなたの議論に差し込みますか?

DirectoryInfo directoryInfo = new DirectoryInfo(@"C:\System Volume Information\"); 
DirectoryInfo restoreFolder = directoryInfo.GetDirectories().FirstOrDefault(d => 
    d.Name.StartsWith("_restore")); 

if (restoreFolder == null) 
    throw new DirectoryNotFoundException(); 

次に、あなたの引数にそのフォルダ値をプラグインすることができるはず

process.StartInfo.Arguments = string.Format(
    @"-r C:\test\ftk\ntuser.dat -d C:\System Volume Information\{0} -p runmru", 
    restoreFolder.Name); 
+0

感謝を引数は現在動作していませんが、仲間.... – JavaNoob

1

このコードは、最も最近作成した_restoreディレクトリを取得する方法を示しています。答えを

static void Main(string[] args) 
    { 
     DirectoryInfo di = new DirectoryInfo(@"c:\System Volume Information"); 
     DirectoryInfo directoryInfo = null; 
     foreach (var enumerateDirectories in di.GetDirectories("_restore*")) 
     { 
      if (directoryInfo == null || enumerateDirectories.CreationTime > directoryInfo.CreationTime) 
      { 
       directoryInfo = enumerateDirectories; 
      } 
     } 
     if (directoryInfo != null) 
     { 
      Console.WriteLine(directoryInfo.FullName); 
     } 
     Console.ReadLine(); 
    } 
+0

他のメソッドのために立ち上げてください! – JavaNoob

関連する問題