2016-12-26 9 views
0

.mkvファイル(vlc.exe、mpc-hc.exeなど)を使用しているプロセスの名前を取得しようとしていますファイルがどのプロセスで使用されているかを知るには

私はすでにそれが使用されているかどうかを調べることができましたが、プロセスが正確にファイルを使用しているかどうかを知りたいのです。

私はこの投稿How do I find out which process is locking a file using .NET?からの提案を試みましたが、ファイルへのパスを差し込んで実行しても動作していないと、プロセスが表示されません(エラーなしでコードを実行できます)。

public static bool IsFileinUse(FileInfo file) 
{ 
    FileStream stream = null; 

    try 
    { 
     stream = file.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None); 
    } 
    catch (IOException) 
    { 
     //the file is unavailable because it is: 
     //still being written to 
     //or being processed by another thread 
     //or does not exist (has already been processed) 
     return true; 
    } 
    finally 
    { 
     if (stream != null) 
      stream.Close(); 
    } 
    return false; 
} 
+0

をhttp://stackoverflow.com/questions/958123/powershell-script-to-check-an-application- thats-locking-a-file –

+0

http://stackoverflow.com/questions/317071/how-do-i-find-out-which-process-is-locking-a-file-using-net –

+1

http:// stackoverflow.com/questions/860656/using-c-how-does-one-figure-out-what-process-locked-a-file –

答えて

-1

この試してみてください。これはあなたが正しい方向に行くことに役立つかもしれない

string fileName = @"c:\yourFile.doc";//Path to locked file 

Process tool = new Process(); 
tool.StartInfo.FileName = "handle.exe"; 
tool.StartInfo.Arguments = fileName+" /accepteula"; 
tool.StartInfo.UseShellExecute = false; 
tool.StartInfo.RedirectStandardOutput = true; 
tool.Start();   
tool.WaitForExit(); 
string outputTool = tool.StandardOutput.ReadToEnd(); 

string matchPattern = @"(?<=\s+pid:\s+)\b(\d+)\b(?=\s+)"; 
foreach(Match match in Regex.Matches(outputTool, matchPattern)) 
{ 
    Process.GetProcessById(int.Parse(match.Value)).Kill(); //kill the process if you want 
} 
+0

handle.exeとは何ですか? – john

+0

ハンドルは、システム内の任意のプロセスのオープンハンドルに関する情報を表示するユーティリティです。これを使用して、ファイルが開いているプログラムを表示したり、プログラムのすべてのハンドルのオブジェクトタイプと名前を表示することができます。 – NicoRiff

+0

これはsysinternalsツールの一部です... https://download.sysinternals.com/files/Handle.zipからダウンロードできます – NicoRiff

関連する問題