¿Cómo puedo desbloquear un archivo que está bloqueado por un proceso en .NET [duplicado]

StackOverflow https://stackoverflow.com/questions/242882

Pregunta

    

Esta pregunta ya tiene una respuesta aquí:

    
            
  •              Desbloquear archivos para eliminarlos                                      2 respuestas                          
  •     
    

Quiero que mi aplicación limpie todos los archivos temporales que utiliza, el problema es que no todos los archivos temporales están bajo mi control, por lo que solo quiero " brutalmente " Desbloquéalos para eliminarlos programáticamente.

¿Fue útil?

Solución

Echa un vistazo a este artículo. Creo que tendrá dificultades para hacer esto en C # de forma nativa, incluso utilizando interoperabilidad, pero escribir un conjunto de envoltorio C ++ / CLI puede ser un buen compromiso. Tenga en cuenta también que el usuario debe tener el privilegio SE_DEBUG para que esto funcione.

Otros consejos

También he luchado con esto, y terminé simplemente 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.

Seguramente, de tu aplicación es querer limpiar los archivos temporales que posee, ¡entonces tienes 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 necesitas, siempre puedes generar una aplicación de línea de comandos en lugar de intentar replicar la funcionalidad de las herramientas existentes, que será difícil en C #.

Echa un vistazo a esto hilo en los foros de MSDN. Hay suficiente información para hacer lo que quieres, pero no es recomendable.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top