2011-10-19 14 views

答えて

2

はこれを試してみてください:

timidity "my filename" 
4

あなたは、値を二重引用符で囲むことができます:

string parameters = string.Format("\"{0}\"", filechooser.Filename); 
psi = new ProcessStartInfo("timidity", parameters); 
3

うまく動作する必要があること、スペースがあまりにも渡されます。

しかし、あなたが(開始されているアプリに依存し、すなわち、臆病)ファイル名をエスケープしたい場合は、次の操作を行います。

string parms = string.Format("\"{0}\"", filechooser.Filename); 
psi = new ProcessStartInfo("timidity", parms); 

これをフォーマット\"{0}\"に基づいて文字列を作成します。 \"は引用符(")になり、{0}は、フォーマット文字列、つまりファイル名の後の最初のパラメータに置き換えられます。

開始、実行機能またはコマンドプロンプト(cmd.exe)を使用してこれを試すことができます。引用符で、スペースで、その後、あなたの完全なファイル名を臆病を入力し、それが動作するかどうかを確認:

"\"timidity\"" 
1

バックスラッシュはあなたの友達です。

string parms = filechooser.Filename ;  
psi = new ProcessStartInfo("timidity", "\"" + parms + "\""); 
+0

いいえ、起動するプログラムではなく、スペースを含むファイル名です(「timidity」にはスペースはありません) –