дважды щелкните, чтобы открыть файл c # - PullRequest
2 голосов
/ 04 января 2010

У меня есть список, заполненный путями к файлам. Кто-нибудь знает, как открыть программу по умолчанию для файла, когда он дважды щелкнул? Например, если один из элементов списка содержит «c: \ test.txt», как открыть его в блокноте? И если это "c: \ inetpub \ wwwroot \ sitetest \ test.asp", как его можно открыть в редакторе asp по умолчанию? Спасибо.

Ответы [ 3 ]

10 голосов
/ 04 января 2010

Передайте имя файла в System.Diagnostics.Process.Start () метод

2 голосов
/ 04 января 2010

Вы можете использовать классы Process / ProcessStartInfo для запуска файла с обработчиком приложения по умолчанию в Windows.

Например:

ProcessStartInfo psi = new ProccessStartInfo();
psi.FileName = "myfile.txt";
Process p = new Process();
p.StartInfo = psi;
p.Start();

Имейте в виду, что p.Start () может выдавать исключения, с которыми вам придется работать, и разные версии окон будут вести себя немного по-разному. Я знаю, что в Win7 / Vista появится диалоговое окно выбора приложений, если для типа файла нет обработчика по умолчанию, но в некоторых версиях вы просто получите исключение.

0 голосов
/ 15 марта 2018

Это не полностью имитирует двойной щелчок в проводнике Windows, как есть. Например, в AutoCAD загружается правильная версия, но при отправке файла filepath в Process.Start возникает ошибка диспетчера лицензий на программные блокировки.

System.Diagnostics.Process.Start(dwgFilePath);

Чтобы полностью эмулировать двойной щелчок в проводнике Windows, необходимо указать путь к explorer.exe

System.Diagnostics.Process.Start("explorer.exe", dwgFilePath);
...