串联字符串文字与DirectoryInfo的枚举和添加引号。(Concatenate string

2019-10-17 06:21发布

这看起来是一个不起眼的问题,但这里有云:

有没有一种方法来连接字符串文字与一个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

PS我希望这是有道理的,请如果你需要澄清提问。

Answer 1:

反斜杠不是一倍,引号的反斜杠也“不存在”。 您可以通过验证Console.WriteLine(a.StartInfo.Arguments)MessageBox.Show(a.StartInfo.Arguments)

你们看到的-在我假设的调试器-是没有翻译的转义字符的字符串表示-就像你需要在IDE进入。

例:

string s = "\"";

这将显示在调试器"\""但它会在屏幕上显示为"



文章来源: Concatenate string literals with DirectoryInfo enumeration and adding quotation marks.