Bir dosyayı c # ile nasıl açarım? Onu textreader ve readline () ile okumayı kastetmiyorum. Not defterinde bağımsız bir dosya olarak aç demek istiyorum.
Bir dosyayı c # ile nasıl açarım? Onu textreader ve readline () ile okumayı kastetmiyorum. Not defterinde bağımsız bir dosya olarak aç demek istiyorum.
Yanıtlar:
İhtiyacın var System.Diagnostics.Process.Start()
.
En basit örnek:
Process.Start("notepad.exe", fileName);
Daha Genel Yaklaşım:
Process.Start(fileName);
İkinci yaklaşım muhtemelen daha iyi bir uygulamadır çünkü bu, Windows Kabuğunun dosyanızı ilişkili düzenleyiciyle açmasına neden olur. Ek olarak, belirtilen dosyanın bir ilişkilendirmesi yoksa Open With...
, pencerelerden iletişim kutusunu kullanır .
Yorumlarda bulunanlara dikkat edin, katkılarınız için teşekkür ederiz. Hızlı ve kirli cevabım biraz yanlıştı, cevabı doğru şekilde yansıtacak şekilde güncelledim.
Process.Start(filename)
bir saldırganın yerine olabilir ve böylece olası bir komut enjeksiyon olduğu MyTextFile.txt
için MyMalicious.bat
ya da fdisk ...
. Kullanması daha iyi Process.Start("notepad.exe", filename)
.
Çok fazla bilgi sağlamıyorsunuz, ancak bilgisayarınızdaki herhangi bir dosyayı, o dosya türü için varsayılan işleyici için belirtilen uygulamayla açmak istediğinizi varsayarak, aşağıdaki gibi bir şey kullanabilirsiniz:
var fileToOpen = "SomeFilePathHere";
var process = new Process();
process.StartInfo = new ProcessStartInfo()
{
UseShellExecute = true,
FileName = fileToOpen
};
process.Start();
process.WaitForExit();
UseShellExecute parametresi, Windows'a açtığınız dosya türü için varsayılan programı kullanmasını söyler.
WaitForExit, uygulamanızın, uyguladığınız uygulama kapanana kadar beklemesine neden olacaktır.
if(File.Exists(fileToOpen))
bir istisnayla karşılaşmamak için a kullanmak iyi olur .
bu, dosyayı varsayılan Windows programıyla açacaktır (değiştirmediyseniz not defteri);
Process.Start(@"c:\myfile.txt")
Parametre olarak dosya ile Process.Start
çağırmayı kullanabilirsiniz notepad.exe
.
Process.Start(@"notepad.exe", pathToFile);
Process.Start(@"%windir%\notepad.exe");
Win32Exception oluşturur: "Dosya bulunamıyor" ama normalde çalışmalıdır.
Bir Notepad.exe örneğini başlatmak için System.Diagnostics.Process kullanın .