パラメータfilenameでプロセスを実行したいと思います。新しいプロセスを開始するときに空白でパラメータを指定する方法
string parms = filechooser.Filename ;
psi = new ProcessStartInfo("timidity", parms);
問題は、スペースを含むファイル名を選択するときに発生します。 ""でパラメータを渡すことはできますか?
おかげ
パラメータfilenameでプロセスを実行したいと思います。新しいプロセスを開始するときに空白でパラメータを指定する方法
string parms = filechooser.Filename ;
psi = new ProcessStartInfo("timidity", parms);
問題は、スペースを含むファイル名を選択するときに発生します。 ""でパラメータを渡すことはできますか?
おかげ
はこれを試してみてください:
timidity "my filename"
あなたは、値を二重引用符で囲むことができます:
string parameters = string.Format("\"{0}\"", filechooser.Filename);
psi = new ProcessStartInfo("timidity", parameters);
うまく動作する必要があること、スペースがあまりにも渡されます。
しかし、あなたが(開始されているアプリに依存し、すなわち、臆病)ファイル名をエスケープしたい場合は、次の操作を行います。
string parms = string.Format("\"{0}\"", filechooser.Filename);
psi = new ProcessStartInfo("timidity", parms);
これをフォーマット\"{0}\"
に基づいて文字列を作成します。 \"
は引用符("
)になり、{0}
は、フォーマット文字列、つまりファイル名の後の最初のパラメータに置き換えられます。
開始、実行機能またはコマンドプロンプト(cmd.exe
)を使用してこれを試すことができます。引用符で、スペースで、その後、あなたの完全なファイル名を臆病を入力し、それが動作するかどうかを確認:
"\"timidity\""
バックスラッシュはあなたの友達です。
string parms = filechooser.Filename ;
psi = new ProcessStartInfo("timidity", "\"" + parms + "\"");
いいえ、起動するプログラムではなく、スペースを含むファイル名です(「timidity」にはスペースはありません) –