C# 使用DirectoryInfo枚举连接字符串文字并添加引号。

C# 使用DirectoryInfo枚举连接字符串文字并添加引号。,c#,concatenation,double-quotes,directoryinfo,lpr,C#,Concatenation,Double Quotes,Directoryinfo,Lpr,这似乎是一个晦涩难懂的问题,但问题是: 在文件路径周围添加引号时,是否有方法将字符串文字与DirectoryInfo枚举(包含文件路径)连接起来?此外,在将DirectoryInfo枚举转换为字符串时,如何防止反斜杠加倍?我的情况如下: DirectoryInfo filePathDirectory = new DirectoryInfo(filePath); Process a = new Process(); a.StartInfo.FileName = "C:\\Windows\\sys

这似乎是一个晦涩难懂的问题,但问题是:

在文件路径周围添加引号时,是否有方法将字符串文字与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
中包含的文件路径周围添加引号


另外,我希望这是有意义的,如果你需要澄清,请提问

反斜杠没有加倍,引号的反斜杠也“不存在”。您可以通过
Console.WriteLine(a.StartInfo.Arguments)
MessageBox.Show(a.StartInfo.Arguments)
对其进行验证

在我假设的调试器中,您看到的是未翻译转义字符的字符串表示形式,就像您需要在IDE中输入它一样

例如:

string s = "\"";
这将在调试器中显示为
“\”
,但在屏幕上显示为

你说得对。我只是认为这会给我的流程带来问题,而事实上,这似乎是另一件需要我提出新问题的事情。