2012-03-30 20 views
1

私はこのパスを持っています。パスに空白を含むC#内のWord文書を開く

path = Cash Report\\30-03-2012 01-11-07 Cash Flow Report.Docx 

次のコードを使用してファイルを開くと、各単語が開こうとします。それで、それは開いたcash.doc、Report.docなどを試してみるでしょう。

//Open the newly created file 
     ProcessStartInfo startInfo = new ProcessStartInfo(); 
     startInfo.FileName = "WINWORD.EXE"; 
     startInfo.Arguments = path; 
     Process.Start(startInfo); 

スペースを無視する方法はありますか?

+0

「引用符で文字列を囲みます。 " – dlev

答えて

4

からしてみてください

path="\"Cash Report\\30-03-2012 01-11-07 Cash Flow Report.Docx\"" 
+0

素晴らしいです、ありがとう!チャームのように働いた! – r0bb077

0

このソリューションは動作します:

Program that starts WINWORD.EXE [C#] 

using System.Diagnostics; 

class Program 
{ 
static void Main() 
{ 
// A. 
// Open specified Word file. 
OpenMicrosoftWord(@"C:\Users\Sam\Documents\Gears.docx"); 
} 

/// <summary> 
/// Open specified word document. 
/// </summary> 
static void OpenMicrosoftWord(string f) 
{ 
ProcessStartInfo startInfo = new ProcessStartInfo(); 
startInfo.FileName = "WINWORD.EXE"; 
startInfo.Arguments = f; 
Process.Start(startInfo); 
} 

}だけでテスト

http://www.dotnetperls.com/process-start

挨拶

+0

これはc:\ cash.docを試し、次に\ 30-03-012.docを報告します.... –

+0

投票はなぜですか?あなたは何もあなたのファイルのパスについては何も言わなかった... C:\私が書いたのは単なる例だった.. –

+1

私はそれを投票しなかった、私はちょうどコメントを追加しました。あなたの答えはうまくいかず、同じことが問題になるでしょう。あなたはファイルのリストではなく単一のファイルとして扱うために単語を得るためにパスのまわりに余分な引用符を付ける必要があります –

0
String wordExe = "C:\\Program Files\\Microsoft Office\\Office14\\winword.exe"; 
    String filePath = "\"C:\\Users\\MainW8\\Documents\\название прецедента.docx\""; 
    String command = String.format("%s /t %s",wordExe,filePath); 
    System.out.println(command); 

出力:
C:の\ Program Files \ Microsoft Office \ Office14 \ WINWORD.EXE/T "C:Users \ユーザー\ MainW8 \ドキュメント\названиепрецедента.docx"

関連する問題