2009-10-29 6 views
5

ファイルを解凍してこのファイルを処理するC#プログラムをビルドします。C#プロセスを殺すには?

は、時々私は、このメッセージが表示されます:「プロセスは、ファイルcアクセスすることはできません:それは別のプロセスによって使用されているので....」を

私は何ができますか?どのようにそれを殺すために?

答えて

10

ファイルにアクセスしているプログラムを確認する必要があります。あなた自身のアプリケーションを終了するのを忘れたのですか、それともファイルにアクセスする他の人がいますか?

プロセスを強制終了するためにC#コードを書くことはできますが、別のプロセスで既に使用されている理由を調べる方が良いでしょう。

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

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

を、@Darinノートとして、あなたはこの他のSOスレッドを見てみることもできます:How do I find out which process is locking a file using .NET?

SysinternalsのツールC#で名前を持つすべてのプロセスnameOfProcessを殺すために

@ダリンによってコメントに記載されているのはhttp://technet.microsoft.com/en-us/sysinternals/bb896645.aspxです。

+2

ファイルをロックしている人を最初に見つけ出すには、sysinternalsのProcessMonitorを調べる必要があります。ツールバーのスパイラスをクリックし、ファイル名を入力してください。このファイルに対するオープンハンドルを持つすべてのプロセスのリストが表示されます。 – Oliver

2

プロセスモニタは動作しますが、Process Explorerは、 この。これは現在、Microsoftが所有するSysinternalsからも提供されています。プロセスエクスプローラを管理者として実行し、検索ボタンをクリックします。これにより、ファイルを使用しているアプリケーションとスレッドが表示されます。

+0

私はこの答えを秒です。これは私のデバッグに大いに役立っています。 – Joel

関連する問題