2009-10-29 13 views
5

Dosya ayıklayan bir C# programı oluşturuyorum ve bu dosya üzerinde çalışıyorum. "Dosya c erişemez süreç: başka bir işlem tarafından kullanıldığı için ...."C# işlemini nasıl öldürebilirim?

ben ne yapabilirim

Bazen bu mesajı almak? Nasıl öldürülür?

cevap

10

Dosyaya erişen programı bulmalısınız. Kendi uygulamalarınızdan birini çıkarmayı mı unuttunuz, yoksa dosyaya erişen başka var mı?

Bir işlemi sonlandırmak için C# kodu yazabilirsiniz, ancak başka bir işlem tarafından neden kullanıldığını bulmak daha iyi bir yaklaşım olacaktır.

C# isim nameOfProcess ile tüm işlemleri öldürmek için:

Process[] ps = Process.GetProcessesByName("nameOfProcess"); 

foreach (Process p in ps) 
    p.Kill(); 

Ayrıca @Darin notlar gibi, bu diğer SO iplik bakmak olabilir: How do I find out which process is locking a file using .NET?

sysinternals araçları o @Darin tarafından yorumlarda bulunan yorumlarda http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

+2

Dosyanızı kimin kilitlediğini öğrenmek için, sysinternals'dan ProcessMonitor'a bir göz atmalısınız. Araç çubuğundaki spyglass'ı tıklamanız ve dosyanızın adını girmeniz yeterlidir. Bu dosyaya açık bir tanıtıcıya sahip tüm süreçlerin bir listesini alırsınız. – Oliver

2

Proses Monitörü çalışacaktır ancak Process Explorer için çok daha iyi bir uygulamadır bu. Aynı zamanda Microsoft’un sahip olduğu Sysinternals’tan da. Process Explorer'ı yönetici olarak çalıştırın ve ardından arama düğmesine tıklayın. Bu daha sonra dosyayı kullanan uygulamaları ve konuları gösterecektir.

+0

Bu cevabı ikincisiyim. Bu hata ayıklamada bana çok yardımcı oldu. – Joel

İlgili konular