Як відкрити файл в c #? Я не маю на увазі читання текстовим читанням читанням рядка (). Я маю на увазі відкрити його як незалежний файл у блокноті.
Як відкрити файл в c #? Я не маю на увазі читання текстовим читанням читанням рядка (). Я маю на увазі відкрити його як незалежний файл у блокноті.
Відповіді:
Вам потрібно System.Diagnostics.Process.Start()
.
Найпростіший приклад:
Process.Start("notepad.exe", fileName);
Більш загальний підхід:
Process.Start(fileName);
Другий підхід, мабуть, є кращою практикою, оскільки це призведе до того, що програма Windows Shell відкриє ваш файл із пов'язаним редактором. Крім того, якщо вказаний файл не має асоціації, він використовуватимеOpen With...
діалогове вікно з вікон.
Зауважте, що в коментарях дякую вам за ваш внесок. Моя швидка "брудна відповідь" була трохи вимкнена, я оновив відповідь, щоб відобразити правильний спосіб.
Process.Start
це ім'я файлу документа або програми, тоді як ваш - назва програми, поєднане з параметром командного рядка.
Process.Start(filename)
є потенційною ін'єкцією команди, в результаті чого зловмисник може замінити MyTextFile.txt
на MyMalicious.bat
або fdisk ...
. Краще використовувати Process.Start("notepad.exe", filename)
.
Ви не надаєте багато інформації, але припускаючи, що ви хочете відкрити будь-який файл на своєму комп’ютері за допомогою програми, яка вказана для обробника за замовчуванням для цього типу файлів, ви можете використовувати щось подібне:
var fileToOpen = "SomeFilePathHere";
var process = new Process();
process.StartInfo = new ProcessStartInfo()
{
UseShellExecute = true,
FileName = fileToOpen
};
process.Start();
process.WaitForExit();
Параметр UseShellExecute повідомляє Windows використовувати програму за замовчуванням для типу файлу, який ви відкриваєте.
WaitForExit змусить вашу програму чекати, поки закрита вами програма не буде закрита.
if(File.Exists(fileToOpen))
щоб не стикатися з винятком.
це відкриє файл за допомогою програми Windows за замовчуванням (блокнот, якщо ви його ще не змінили);
Process.Start(@"c:\myfile.txt")
Ви можете використовувати Process.Start
, зателефонувавши notepad.exe
разом із файлом як параметр.
Process.Start(@"notepad.exe", pathToFile);
Process.Start(@"%windir%\notepad.exe");
кидає Win32Exception: "Не вдається знайти файл", але зазвичай він повинен працювати.
Використовуйте System.Diagnostics.Process для запуску екземпляра Notepad.exe.