2011-07-16 11 views
5

現在、特定のフォルダから実行可能ファイルを起動しようとしています。プログラムを実行するための作業ディレクトリを定義する(C#)

私は以下の持っているコードは、奇妙なことに、アプリケーションをクラッシュ:

Process p = new Process(); 
p.StartInfo.WorkingDirectory = "dump"; 
p.StartInfo.FileName = s; 
p.Start(); 

私はそれをデバッグし、そしてそれが起動するファイルを見つけることができないと言っていたが、ファイル/フォルダがdefintly存在する、私です構文が悪い?

作品以下のコードが、それが実行可能

Process.Start(@"dump\", s); 

答えて

9

ます(「ダンプ」)設定作業ディレクトリを見つけることができませんので、作業directroyは、定義されていないが、現在の作業ディレクトリからの相対であります。現在の作業ディレクトリを確認することができます。

あなたはこのコードの実行アセンブリディレクトリに作業ディレクトリを設定することができるはず...

string exeDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); 
Directory.SetCurrentDirectory(exeDir); 

それとも、いっそ、相対パスを使用しない、設定p.StartInfo.WorkingDirectory絶対パスへ

+0

正解、私は現在のorking directroyにダンプフォルダを持っています – James

0

フォルダ内に実行可能ファイルがない場合は、フォルダから実行ファイルを起動することはできません。実行可能ファイルをこのフォルダーにコピーする必要があります。その後、この実行可能ファイルに対してProcessを開始することができます。

関連する問題