【发布时间】:2012-09-21 13:55:30
【问题描述】:
这似乎是一个晦涩难懂的问题,但在这里:
有没有办法将字符串文字与 DirectoryInfo 枚举(包含文件路径)连接起来,同时在文件路径周围添加引号?此外,在将 DirectoryInfo 枚举转换为字符串时,如何防止反斜杠加倍?我的情况如下:
DirectoryInfo filePathDirectory = new DirectoryInfo(filePath);
Process a = new Process();
a.StartInfo.FileName = "C:\\Windows\\system32\\lpr.exe";
a.StartInfo.Arguments = "-SServername.Domain.net -Plp " + "\"" + filePathDirectory + "\"";
a.StartInfo.UseShellExecute = false;
a.Start();
a.WaitForExit();
filePathDirectory 以以下值开头:
{\\ServerName\Share\Folder\Folder\FileName.xls}
我认为一旦连接到a.StartInfo.Arguments,它就会转换成一个字符串,它的值是:
-SServername.Domain.net -Plp \"\\\\ServerName\\Share\\Folder\\Folder\\FileName.xls\"
这很糟糕,因为路径中的反斜杠数量增加了一倍。如何确保没有反斜杠添加到路径中?
最重要的是,为了添加引号,我使用了反斜杠转义序列;但是这个转义序列的反斜杠被无意中添加到我的字符串中。如何在a.StartInfo.Arguments 中包含的文件路径周围添加引号?
附:我希望这是有道理的,如果您需要澄清,请提出问题。
【问题讨论】:
标签: c# concatenation double-quotes directoryinfo lpr