Como descobrir qual processo está bloqueando um arquivo usando o .NET?

Eu já vi várias respostas sobre o usoLidar com ouMonitor de Processo, mas gostaria de descobrir em meu próprio código (C #) qual processo está bloqueando um arquivo.

Eu tenho uma sensação desagradável de que vou ter que soletrar na API do win32, mas se alguém já fez isso e pode me colocar no caminho certo, eu realmente aprecio a ajuda.

AtualizarLinks para perguntas semelhantesComo descobrir qual processo bloqueou um arquivo usando c #?Ferramenta de linha de comandoEm uma redeBloqueando um dispositivo USBO teste de unidade falha com o arquivo bloqueadoexcluindo arquivo bloqueado

questionAnswers(6)

yourAnswerToTheQuestion