2012-03-30 76 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 2012-03-30 00:16:37

回答

4

尝试

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

太棒了,谢谢!像魅力一样工作! – r0bb077 2012-03-30 00:22:37

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 .... – 2012-03-30 00:17:17

+0

为什么你投票下来?你没有任何关于你的文件的路径... C:\我写的只是一个例子.. – 2012-03-30 00:20:19

+1

我没有投票,我只是添加了评论。你的回答将不起作用,并且会出现与操作相同的问题。您需要在路径中加上多余的引号以获取单词,将其视为单个文件而不是文件列表 – 2012-03-30 00:25:13

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 /吨 “C:\用户\ MainW8 \文档\названиепрецедента.docx”