Незаконный характер в пути

Я пытаюсь добраться до файла, расположенного в

C:\Program Files (x86)\test software\myapp\demo.exe

В отладчике VS я вижу путь как:

"\"C:\\\Program Files (x86)\\\test software\\\myapp\\\demo.exe\""

когда я распечатаю его, я вижу в консоли:

"C:\Program Files (x86)\test software\myapp\demo.exe"

но когда я попробую что-то вроде

FileInfo fi = new FileInfo(PathMentionedAbove); 

Я получаю недопустимый символ в пути.

Что не так? файл существует, и путь правильный. что незаконно выше этого пути?

любая помощь будет оценена.

Ответ 1

В ваш путь входит "в начале и в конце". Отбросьте кавычки, и все будет хорошо.

"В начале и в конце того, что вы видите в VS Debugger, это то, что говорит нам, что кавычки буквально находятся в строке.

Ответ 2

Попробуйте следующее:

string path = @"C:\Program Files (x86)\test software\myapp\demo.exe";

Ответ 3

Строка окружена двойными кавычками. Да, это не допустимый символ в пути.

Вероятно, вам стоит попробовать его у источника, но вы можете их разбить:

        path = path.Replace("\"", "");

Ответ 4

Кажется, у вас есть метки кавычек ("), встроенные в вашу строку в начале и в конце. Они не нужны и являются незаконными символами в пути. Как вы инициализируете строку с помощью пути?

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

Вы можете сделать две вещи - обычную экранированную строку (используя \) или дословный строковый литерал (который начинается с @):

  string str = "C:\\Program Files (x86)\\test software\\myapp\\demo.exe";

Или:

  string verbatim = @"C:\Program Files (x86)\test software\myapp\demo.exe";

Ответ 5

Я обычно входил бы на путь, подобный этому....

FileInfo fi = new FileInfo(@"C:\Program Files (x86)\test software\myapp\demo.exe"); 

Вы зарегистрировали @в начале строки?; -)

Ответ 6

попробуйте

"C:/Program Files (x86)/тестовое программное обеспечение /myapp/demo.exe"