2011-07-01 23 views
-2

私は.exeファイルを実行したいWebアプリケーションを持っています。ProcessStartInfo WorkigDirectoryパラメータ

ProcessStartInfo info = new ProcessStartInfo(); 
info.WorkingDirectory = this.WorkingDirectory; 

私は私の

info.WorkingDirecoty = Request.MapPath("~"); 
info.FileName = Server.MapPath("~/theFile.exe"); 

を入れたときに、それが動作します。しかし、私はこれらのように置く:

info.WorkingDirecoty = "~"; 
info.FileName = "~/theFile.exe"; 

それは動作しません、なぜですか?どうすればこの問題を解決できますか?または私は常にServer.MapPathを使用する必要がありますか?

+0

最後の2つのコードスニペットの違いはどこですか? – PVitt

+1

Server.MapPathを使用しないのはなぜですか? –

+0

@PVitt:入力ミス。私はそれらを編集しました – Grace

答えて

1

MSDNが

Server.MapPathの方法

言うようMapPathメソッドは サーバー上の対応する物理ディレクトリに指定 相対または仮想パスをマッピングします。

とあなたはあなたをSystem.Webのためにあるため、参照のServer.MapPathのを使用したくないので、もしあなたが、この場合に

をServer.MapPathのを使用する必要がありますProcessStartInfo に直接ファイルパスを与える必要がありますそのライブラリクラスでBaseDirプロパティを作成し、それを参照する外部から渡すことができます。

これが役に立ちます。

+0

私は何をしていましたか..しかし、私は使用しない方法があると思いましたServer.MapPath、もう一度ありがとう。 – Grace

関連する問題