Tengo un directorio de basura donde arrojo descargas, proyectos únicos, borradores de correo electrónico y otras varias cosas que pueden ser útiles por unos días pero que no necesitan guardarse para siempre. Para evitar que este directorio se apodere de mi máquina, escribí un programa que eliminará todos los archivos anteriores a un número específico de días y registrará algunas estadísticas sobre la cantidad de archivos eliminados y su tamaño solo por diversión.¿Cómo elimino un archivo de solo lectura?
Noté que algunas carpetas de proyecto estaban viviendo mucho más de lo que deberían, así que comencé a investigar. En particular, parecía que las carpetas para proyectos en las que había usado SVN se quedaban. Resulta que los archivos de solo lectura en los directorios .svn no se eliminan. Acabo de hacer una prueba simple en un archivo de solo lectura y descubrí que System.IO.File.Delete
y System.IO.FileInfo.Delete
no eliminarán un archivo de solo lectura.
No me importa proteger archivos en este directorio en particular; si algo importante está ahí, está en el lugar equivocado. ¿Existe una clase .NET que pueda eliminar archivos de solo lectura, o voy a tener que verificar los atributos de solo lectura y quitarlos?
me cambió la respuesta aceptada porque Gulzar de la muestra del código es más detallada que la de Tim Stewart. Debería haber elegido esa en primer lugar, pero por alguna razón me gustó Tim es mejor. ¡Las personas son cosas raras! – OwenP
+1 por tomarse el tiempo para hacer las cosas un poco más correctas en el universo. Si solo mis desarrolladores regresaran y corrigieran nuestras propias transgresiones menores, ¡podríamos cancelar las clases de Programación correctiva! –