La risposta breve a questo è no.
Tuttavia, la risposta lunga è che ci sono varie chiamate API e metodi WMI che è possibile utilizzare per trovare queste informazioni, ma non aspettarsi che sia rapido e semplice.
Se si desidera utilizzare le chiamate API, dare un'occhiata alla funzione NtQuerySystemInformation con il parametro SYSTEM_PROCESS_INFORMATION. Questo è uno di quei bei metodi "senza documenti", che viene fornito con la meravigliosa disclaimer:
NtQuerySystemInformation può essere alterato o non disponibili nelle future versioni di Windows. Le applicazioni devono utilizzare le funzioni alternative elencate in questo argomento.
Quindi vorrei suggerire di evitare quello a favore dell'utilizzo di WMI.
È possibile utilizzare la classe WMI Win32_Process per enumerare tutti i processi attualmente in esecuzione sulla macchina e quindi enumerare tutte le maniglie che ogni processo trattiene finché non si trova il file che si sta cercando. Sfortunatamente non c'è un modo semplice per andare "hey, che processo sta bloccando questo file", funziona solo viceversa devi cercare lungo l'elenco dei processi fino a trovare quello che blocca il file che ti interessa.
Suggerirei un piccolo articolo su CodeProject denominato How To: (Almost) Everything In WMI via C# Part 2: Processes. (Parte 1 è anche una buona lettura se ti piace quel genere di cose)
fonte
2010-03-19 19:01:28
L'informazione sarebbe inutile, perché quando fai qualcosa con esso, non potrebbe essere più preciso. –
Davvero Josh? Ne sei sicuro ... – SpaceghostAli
@SpaceghostAli I file sono sempre bloccati indefinitamente, no? –