РЕДАКТИРОВАТЬ: более новый, более простой ответ.
Вы действительно можете просто использовать Process.Start(filename)
. Это указано в документах для Process.Start
:
Запуск процесса с указанием его
имя файла похоже на ввод
информация в диалоговом окне «Выполнить»
меню Пуск Windows. Следовательно
имя файла не нужно представлять
исполняемый файл. Это может быть любой
тип файла, для которого расширение имеет
был связан с заявкой
установлен в системе. Например
имя файла может иметь .txt
расширение, если у вас есть связанный текст
файлы с редактором, таким как Блокнот,
или он может иметь .doc, если у вас есть
связанные файлы .doc со словом
инструмент обработки, такой как Microsoft
Слово. Точно так же, как
диалоговое окно «Выполнить» может принять
имя исполняемого файла с или без
расширение .exe, расширение .exe
является необязательным в параметре fileName.
Например, вы можете установить имя файла
параметр либо "Notepad.exe", либо
"Блокнот".
РЕДАКТИРОВАТЬ: Оригинальный, сложный ответ:
Если вы используете Process.Start
с файлом в качестве «исполняемого файла» и указываете UseShellExecute = true
, это будет просто работать. Например:
using System;
using System.Diagnostics;
class Test
{
static void Main()
{
ProcessStartInfo psi = new ProcessStartInfo("test.txt");
psi.UseShellExecute = true;
Process.Start(psi);
}
}
Это открывает test.txt в Блокноте.
На самом деле, UseShellExecute=true
является значением по умолчанию, но, поскольку это определенно требуется, я хотел бы указать его явно, чтобы сделать это понятнее для читателя.