c# - ¿Cómo puedo desbloquear un archivo que está bloqueado por un proceso en.NET
temporary-files file-locking (4)
Eche un vistazo a este artículo. Creo que tendrás dificultades para hacer esto en C # de forma nativa, incluso utilizando interoperabilidad, pero escribir un ensamblado de envoltura C ++ / CLI puede ser un buen compromiso. Tenga en cuenta también que el usuario necesita tener el privilegio SE_DEBUG para que esto funcione.
Esta pregunta ya tiene una respuesta aquí:
- Desbloquear archivos para eliminar 2 respuestas
Quiero que mi aplicación limpie todos los archivos temporales que usó, el problema es que no todos los archivos temporales están bajo mi control, así que solo quiero desbloquearlos "brutalmente" para eliminarlos programáticamente.
He luchado con esto también, y terminé bombardeando la implementación de la línea de comandos de Unlocker. En mi caso, tiene que ejecutarse muchas veces al día y termina desbloqueando miles de archivos por día sin ningún problema.
Mira este hilo en los foros de MSDN. Hay suficiente información para hacer lo que quiere, pero no es recomendable.
Seguramente, de su aplicación es querer limpiar los archivos temporales que posee, entonces usted tiene el control total para desbloquear estos archivos y eliminarlos.
Si desea eliminar todos los archivos TEMP, ya sean propiedad de su aplicación o de otra manera, debe tener MUCHO cuidado. ¡La aplicación original probablemente aplicó el bloqueo porque quiere usar el archivo!
Si realmente lo necesita, siempre podría generar una aplicación de línea de comandos en lugar de intentar replicar la funcionalidad de las herramientas existentes, lo que será difícil en C #.