2008-10-28 19 views
16

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 "brutalmente" desbloquearlos para eliminarlos programáticamente.¿Cómo puedo desbloquear un archivo que está bloqueado por un proceso en .NET

+0

No sé sobre su aplicación y sus archivos que está utilizando, pero si está utilizando FileStream para manipular sus archivos, debe cerrar el FileStream y desechar el objeto FileStream y luego su archivo (s) utilizado será desbloqueado – milot

Respuesta

4

Eche un vistazo al artículo this. 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.

+0

El archivo ForceDel.zip en ese artículo (que es la solución a esta respuesta) ya no está disponible ... ¡y lo necesito también! :( – kzfabi

+0

Lo encontré! Descargar el mismo [aquí] (http://www.technipages.com/wp-content/uploads/2007/11/forcedel.zip). – kzfabi

+0

[Otra fuente] (http: // www. findthatzipfile.com/search-17553588-hZIP/winrar-winzip-download-forcedel.zip.htm) – kzfabi

2

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 no, 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#.

+0

Los archivos son parte de mi aplicación, pero no son parte de mi módulo y, por razones políticas, no puedo modificar ese módulo (realmente no quería entrar en detalles): de todos modos, sé que es seguro brutalmente borra esos archivos –

3

Tuve problemas 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.

0

Consulte este thread en los foros de MSDN. Hay suficiente información para hacer lo que quiere, pero no es recomendable.

Cuestiones relacionadas