4

更新しました...

コンソールアプリケーションからkdiffを呼び出したい。したがって、2つのファイルを作成していて、プログラムの実行の最後にそれらを比較したいと思います。

string diffCmd = string.Format("{0} {1}", Logging.FileNames[0], Logging.FileNames[1]);
// diffCmd = D:\vdenisenko\DbHelper\DbHelper\bin\Debug\Reports\16_Nov 06_30_46_DiscussionThreads_ORIGIN.txt D:\vdenisenko\DbHelper\DbHelper\bin\Debug\Reports\16_Nov 06_30_46_DiscussionThreads_ORIGIN.txt
System.Diagnostics.Process.Start(@"C:\Program Files (x86)\KDiff3\kdiff3.exe", diffCmd);

//specification is here http://kdiff3.sourceforge.net/doc/documentation.html

kdiff3ツールを実行しますが、ファイル名またはコマンドに問題があります...スクリーンショットを見て、何が問題なのか教えてください。 ここに画像の説明を入力してください

4

4 に答える 4

4

あなたは使用する必要がありますProcess.Start()

string kdiffPath = @"c:\Program Files\Kdiff3.exe"; // here is full path to kdiff utility
string fileName = @"d:\file1.txt";
string fileName2 = @"d:\file2.txt";

Process.Start(kdiffPath,String.Format("\"{0}\" \"{1}\"",fileName,fileName2));

ドキュメントで説明されている引数:kdiff3 file1 file2

于 2012-11-16T11:24:35.630 に答える
2
var args = String.Format("{0} {1}", fileName, fileName2);
Process.Start(kdiffPath, args);
于 2012-11-16T11:26:15.857 に答える
0

これにより、コンソールアプリからプログラムが実行されます

Process p = new Process();
p.StartInfo.FileName = kdiffPath;
p.StartInfo.Arguments = "\"" + fileName + "\" \"" + fileName2 + "\""; 
p.Start();

あなたが何か他のことをしようとしているのでない限り、その場合あなたはより多くの詳細を提供する必要があります。

于 2012-11-16T11:22:41.840 に答える
0
string kdiffPath = @"c:\Program Files\Kdiff3.exe"; // here is full path to kdiff    utility
string fileName = @"d:\file1.txt";
string fileName2 = @"d:\file2.txt";    

ProcessStartInfo psi = new ProcessStartInfo(kdiffPath);
psi.RedirectStandardOutput = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.UseShellExecute = false;
psi.Arguments = fileName +  " " + fileName2;
Process app = Process.Start(psi);

StreamReader reader = app.StandardOutput;

//get reponse from console app in your app
do
{
    string line = reader.ReadLine();
}
while(!reader.EndOfStream);

app.WaitForExit();
于 2012-11-16T11:25:04.160 に答える