Открытие окна проводника с выбранным файлом
У меня есть приложение, которое имеет возможность показывать выбранный файл в папке, в которой находится файл. Мой вопрос: как мне это достичь?
Чтобы уточнить, если пользователь в моей программе выбрал файл "Test.txt", я хочу, чтобы окно Windows Explorer всплыло и выделило выбранный пользователем файл. Вы можете увидеть подобное поведение в LimeWire и uTorrent. Если вы выберете файл в любой из этих программ и выберите "Показать в папке", он откроет окно проводника Windows с выделенным и выбранным файлом. Я пытаюсь дублировать это поведение.
Я попытался использовать следующую строку:
System.Diagnostics.Process.Start("Explorer");
Появится окно Windows Explorer, однако оно всегда открывается по умолчанию в папке "Мои документы".
Ответы
Ответ 1
Здесь вы идете,
string fileToSelect = @"C:\temp.img";
string args = string.Format("/Select, \"{0}\"", fileToSelect);
ProcessStartInfo pfi = new ProcessStartInfo("Explorer.exe", args);
System.Diagnostics.Process.Start(pfi);
Примечание: Добавление \"
до и после параметра {0}
позволяет строке fileToSelect
содержать пробелы (т.е. "C:\Мои документы" ).
Из этой темы:
Программный выбор нескольких файлов в проводнике Windows
Приветствия,
Ответ 2
Для этого есть документированный API: SHOpenFolderAndSelectItems. Кто знает, он может даже сделать правильные вещи, когда проводник не является оболочкой по умолчанию:)
Ответ 3
Вы можете создать путь к папке в строке, а затем отправить его в командную строку Windows для просмотра.
http://www.c-sharpcorner.com/UploadFile/DipalChoksi/ShellCommandsInCS12032005042031AM/ShellCommandsInCS.aspx
Ответ 4
Для VB:
Dim q as Char = ControlChars.Quote
Dim path As String = q & "D:\examples\test doc.txt" & q
Dim psi as New ProcessStartInfo("Explorer.exe", "/Select, " & path)
Process.Start(psi)
Как уже отмечали другие, пути, содержащие пробелы, должны быть заключены в кавычки.