Объединить строковые литералы с перечислением DirectoryInfo и добавить кавычки.

Это кажется таким неясным вопросом, но здесь это идет:

Есть ли способ объединить строковые литералы с перечислением 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\"

Это плохо, потому что количество обратных косых черт в пути удвоилось. Как я могу убедиться, что обратные слеши не добавляются к пути?

Кроме того, чтобы добавить кавычки, я использовал escape-последовательность обратной косой черты; Но обратная косая черта из этой escape-последовательности случайно добавлена ​​в мою строку. Как я могу добавить кавычки вокруг пути к файлу, который содержится в a.StartInfo.Arguments?

PS Я надеюсь, что это имеет смысл, пожалуйста, задавайте вопросы, если вам нужны разъяснения.

1 ответ

Решение

Обратная косая черта не удваивается, и обратная косая черта в кавычках также "не существует". Вы можете проверить это Console.WriteLine(a.StartInfo.Arguments) или же MessageBox.Show(a.StartInfo.Arguments),

То, что вы видите - в предполагаемом отладчике - это представление строки с не переведенными escape-символами - так же, как вам нужно было бы ввести ее в IDE.

Пример:

string s = "\"";

Это будет показано в отладчике как "\"" но он будет отображаться на экране как ":

Другие вопросы по тегам