Tengo una caja de Windows XP con un disco NTFS y la eliminación de grandes cantidades de archivos es extremadamente lenta. Si selecciono una carpeta que contiene una gran cantidad de archivos en un árbol de carpetas y la elimino (usando shift-del para guardar la papelera de reciclaje), lleva tiempo que parece ser directamente proporcional a la cantidad de archivos dentro de la carpeta antes de que incluso aparece el cuadro de confirmación. Luego toma más tiempo borrar cada archivo en la carpeta.
¿Hay alguna forma de eliminar una carpeta en Windows y no tomar el tiempo proporcionalmente a la cantidad de archivos que contiene?
Respuestas:
No lo creo, pero algunos métodos son claramente mucho más rápidos que otros.
La peor forma es enviar a la Papelera de reciclaje: aún necesita eliminarlos. El siguiente peor es shift + delete con el Explorador de Windows: desperdicia mucho tiempo revisando el contenido antes de comenzar a eliminar cualquier cosa.
Lo mejor es usarlo
rmdir /s/q foldername
desde la línea de comandos.del /f/s/q foldername
también es bueno, pero deja atrás la estructura del directorio.Lo mejor que he encontrado es un archivo por lotes de dos líneas con un primer paso para eliminar archivos y salidas a nul para evitar la sobrecarga de escritura en la pantalla para cada archivo único. Una segunda pasada limpia la estructura de directorio restante:
Esto es casi tres veces más rápido que un único rmdir, basado en pruebas de tiempo con un disco encriptado de Windows XP, eliminando ~ 30GB / 1,000,000 de archivos / 15,000 carpetas:
rmdir
toma ~ 2.5 horas,del+rmdir
toma ~ 53 minutos. Más información aquí .Esta es una tarea normal para mí, por lo que generalmente muevo las cosas que necesito eliminar a C: \ stufftodelete y tengo esos
del+rmdir
comandos en un archivo por lotes deletestuff.bat. Está programado para ejecutarse por la noche, pero a veces necesito ejecutarlo durante el día, así que cuanto más rápido mejor.fuente
> nul
Bueno, sí, formatea la partición. Estoy un poco sorprendido de que nadie sugirió eso en los últimos 9 años.
Es bastante radical, pero si anticipa hacer esto con frecuencia para una carpeta específica, puede valer la pena crear una partición separada para ella.
Si eso es demasiado radical, las otras respuestas son su única esperanza. Hay una buena explicación de por qué en serverfault . Es para sistemas de archivos Linux y XFS, pero aquí se aplica la misma lógica. No puede mejorar mucho las funciones integradas del sistema operativo.
Sin embargo, si conoce las rutas a todos los archivos que desea eliminar, puede guardar en las llamadas que enumeran el contenido del directorio y eliminar llamadas directamente, ahorrando algo de sobrecarga. Sin embargo, sigue siendo proporcional al número de archivos.
Personalmente, me gusta un informe de progreso para asegurarme de que el programa no murió. Entonces me gusta eliminar cosas a través de Python. Por ejemplo, si todos los archivos están en un directorio sin subdirectorios:
Esto elimina alrededor de 250 archivos / s en mi SEAGATE ST3250620NS de 12 años. Supongo que será mucho más rápido en tu disco.
Sin embargo, en este punto es solo micro-optimización, por lo que no servirá de mucho a menos que tenga millones de archivos en un directorio. (como yo, jajaja, qué he hecho D :)
fuente
Instalar
gnutools for windows
y ejecutar:fuente
¡Asegúrese de no hacer una copia de seguridad de los archivos en la nube e intentar eliminarlos al mismo tiempo!
Con muchas soluciones de copia de seguridad en la nube, los archivos se bloquearán mientras se realizan copias de seguridad y luego tendrá que esperar a que se realicen copias de seguridad.
Si tiene este problema con decir un directorio temporal (o algo que no necesita copia de seguridad) asegúrese de que el directorio temporal no esté seleccionado en su conjunto de copia de seguridad.
fuente
Descubrí que las carpetas con varias capas de directorios tienden a ralentizar realmente la capacidad de Windows de eliminarlas rápidamente. Estaba trabajando en un proyecto donde se necesitaron 5 niveles para llegar a la carpeta node_modules, que siempre es una bestia para eliminar, incluso con
Lo que termino haciendo en esta situación es navegar hacia la carpeta node_modules o cualquier directorio que tenga los niveles más profundos y simplemente comenzar a seleccionar y eliminar aproximadamente una docena de directorios a la vez. Si obtengo varias eliminaciones, esto obliga a la Papelera de reciclaje a trabajar en procesos paralelos en lugar del hilo único que creo que usa, acelera drásticamente el proceso.
Una vez que mi directorio más profundo está vacío, subo algunos niveles y hago lo mismo. Esto ha reducido las eliminaciones que me han llevado más de una hora a solo unos minutos.
Es un proceso muy manual y probablemente podría ser un guión exitoso, pero es lo que funcionó para mí.
fuente
Utilicé la respuesta original de Hugo para crear un archivo .bat que utilizo al eliminar proyectos de NPM. Agregué una variable de ruta y solo tengo que copiar y pegar la ruta una vez. Haga doble clic en el archivo .bat y hará todo el trabajo, sin necesidad de escribir todo.
Ejemplo de uso:
fuente
intentaste usar el símbolo del sistema
rmdir /s /q foldername
Todas las operaciones de archivos grandes en las GUI son lentas, principalmente porque la retroalimentación visual (barra de progreso) se debe volver a pintar muchas veces
fuente