Я пытаюсь открыть папку в проводнике с выбранным файлом.
Следующий код создает исключение для файла не найден:
System.Diagnostics.Process.Start(
"explorer.exe /select,"
+ listView1.SelectedItems[0].SubItems[1].Text + "\\"
+ listView1.SelectedItems[0].Text);
Как я могу заставить эту команду выполняться в C #?
источник
Если ваш путь содержит запятые, кавычки вокруг пути будут работать при использовании Process.Start (ProcessStartInfo).
Однако он НЕ будет работать при использовании Process.Start (строка, строка). Кажется, что Process.Start (строка, строка) на самом деле удаляет кавычки внутри ваших аргументов.
Вот простой пример, который работает для меня.
источник
Просто мои 2 цента, если ваше имя файла содержит пробелы, то есть "c: \ My File Contains Spaces.txt", вам нужно будет заключить имя файла в кавычки, иначе проводник будет считать, что другие слова - это разные аргументы ...
источник
Ответ Сэмюэля Яна сбил меня с толку, вот мои 3 цента.
Адриан Хам прав, убедитесь, что вы ставите кавычки вокруг вашего имени файла. Не потому, что он не может обрабатывать пробелы, как указывал Зортни, а потому, что он распознает запятые (и, возможно, другие символы) в именах файлов как отдельные аргументы. Так должно выглядеть, как предположил Адриан Хам.
источник
filePath
ничего не содержится"
. Этот символ явно недопустим в системах Windows, но разрешен во всех других (например, в системах POSIXish), поэтому вам нужен еще больше кода, если вы хотите переносимости.Использование
Process.Start
onexplorer.exe
с/select
аргументом странным образом работает только для путей длиной менее 120 символов.Мне пришлось использовать собственный метод Windows, чтобы заставить его работать во всех случаях:
источник
Используйте "/select,c:\file.txt"
Обратите внимание, что после / выберите запятую вместо пробела.
источник
Вы должны поместить передаваемые аргументы ("/ select etc") во второй параметр метода Start.
источник
источник
Наиболее вероятная причина, по которой он не может найти файл - это путь, в котором есть пробелы. Например, он не найдет «explorer / select, c: \ space space \ space.txt».
Просто добавьте двойные кавычки до и после пути, например;
или сделать то же самое в C # с
источник
Это может быть немного излишним, но мне нравятся удобные функции, поэтому возьмите это:
Это функция расширения, которую я использую как <string> .Quote ():
источник