¿Limitar el número de archivos en la Papelera de reciclaje?

¿Limitar el número de archivos en la Papelera de reciclaje?

Hace un par de semanas estaba eliminando cuidadosamente una copia de seguridad antigua de mi disco de datos. Hice una verificación de archivos duplicados entre la copia de seguridad anterior y la copia activa y eliminé las copias antiguas a la Papelera de reciclaje. Todo iba bien y como se esperaba hasta que de repente ya no pude borrar nada. Cada vez que intentaba eliminar un archivo...cualquierarchivo: desde la copia de seguridad anterior, fallaría.

Examiné la Papelera de Reciclaje y se me ocurrió que puede ser porque simplemente habíademasiados archivosEn la papelera. no estoy hablando detamaño, pero elnúmerode archivos. Aquí hay algunos datos sobre la situación:

  • Es un sistema Windows XP.
  • El volumen con la copia de seguridad anterior es FAT32.
  • El volumen con la copia de seguridad anterior tenía 302 MB de espacio libre.
  • El problema ocurrió cuando había 31,594 archivos en el contenedor.
  • Los archivos reciclados utilizaron 236 MB.
  • El INFO2archivo (que rastrea los nombres de archivo originales del archivo reciclado) tiene más de 24 MB
  • Intentar eliminar incluso un archivo más no funcionaríaindependientemente de su tamaño
  • La Papelera de reciclaje está configurada para no tener límites en todas las unidades.

Intenté buscar esto, pero elmás cerca que puedo encontrares información sobre los límites a latamañode la Papelera de Reciclaje, nada sobre elNúmero de archivos.

¿Alguien ha oído hablar de esto? ¿Alguien puede confirmar que existe un límite paracuántos¿Se pueden almacenar archivos?

Captura de pantalla de la Papelera de reciclaje “llena”

Respuesta1

Un directorio FAT32 puede tener 65.536 entradas de directorio.

Cada archivo y subdirectorio tiene de dos a trece entradas, dependiendo de la longitud de su nombre.

Entonces, en la situación más optimista, su papelera de reciclaje podría contener 65,536 /2 = 32768 archivos+directorios si todos tienen nombres de archivo en el rango 8.3. (Nombres cortos)

Sus 31594 archivos + 53 directorios parecen haber llegado al límite.
Probablemente hay algunos archivos que toman >2 entradas debido a nombres de archivo más largos.


Editar:

La especificación FAT32 está disponible aquí:
http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx

Proporciona detalles sobre todo, incluida la estructura de directorios y la forma en que se almacenan los nombres de archivos largos (LFN) en los directorios. Básicamente, hay una entrada de directorio que siempre contiene la versión corta (8.3) del nombre del archivo. Y debido a que Windows necesita distinguir entre mayúsculas y minúsculas para los nombres de archivos largos (LFN), se necesita una entrada de directorio separada para los LFN (o varias si tienen más de 13 caracteres).

Para cumplir con los objetivos de localidad de acceso y transparencia, la entrada de directorio larga se define como una entrada de directorio corta con un atributo especial.


Edición #2:

Hice algunas pruebas en una VM con Windows XP y una unidad FAT32 (con la papelera de reciclaje al máximo).

En un datadirectorio creé un subdirectorio testdespués del cual ejecuto este archivo por lotes:

@echo off
if "%1"=="####" goto %1
  for %%a in (0 1 2 3 4 5 6 7 8 9 A B C D E F) do call %0 #%1 %2 %3 %4 %%a
  goto EOF
:####
  echo %2%3%4%5
  echo test > test\%2%3%4%5
:EOF

Resultando en 65534 archivos (solo con nombres cortos). Como era de esperar, no pudo agregar los dos últimos archivos ( FFFEy FFFF) debido a las 2 entradas del directorio ( .y ..). Así .que ..solo tomo 2 entradas, es bueno saberlo para más adelante)

Luego seleccioné más de 45000 archivos y los eliminé en el explorador
(me tomó un tiempo recopilar la información antes de eliminarlos :)

Debido a que los nombres de archivos en la papelera de reciclaje son De1, De2etc., estos son nombres de archivos largos (debido a la combinación de mayúsculas y minúsculas). Explorer dio un error después de eliminar 32765 archivos.

Me dieron dir /a/x32767 archivos y 2 directorios.
32765 archivos de usuario (conLFN), an INFO2y desktop.ini(ambos sin LFN).

(32765 * 2) = 65530 + 2 (sin LFN) + 2 entradas de directorio = 65534

Mmmm, todavía faltan 2 ;)

Con 65534 debería poder agregar 1 (con LFN) más. Entonces creo que Windows podría necesitar una entrada gratuita adicional para algún archivo temporal.

Pero como puedes verel límite es 65530 entradas de directoriode los cuales cada archivo ocupa 2.
(Entonces32765 archivosporque los nombres de archivos resultantes son mayúsculas y minúsculasy aun menossi la extensión es mayor que 3).

Cuando probé esto, los nombres de archivos eran todos De1, De2etc. (los originales eran todos los archivos sin extensión). Sus nombres de archivos tienen extensiones. Si tienen extensiones más largas (>3), podrían ser necesarias más entradas porque Windows conserva la extensión en la papelera de reciclaje.

Pero es realmente extraño que Microsoft no haya optado por solo nombres cortos en la papelera de reciclaje porque los nombres de archivos (originales) deberían almacenarse en formato INFO2.


Edición #3:

Acabo de confirmar que el mecanismo de eliminación de Windowsnecesitauna entrada de directorio adicional.

Lo hice xcopy e:\recycled\*.* e:\test\ /e/s/hcon una papelera de reciclaje llena, copiando todos los archivos (32767 archivos) de la papelera de reciclaje a un directorio de prueba.

Todavía podría crear 1 archivo De_test1.txt(LFN) en formato e:\test. La creación De_test2.txtdio un error.

Entonces, "eliminar Windows" debería haber sido suficiente para crear 1 archivo más (LFN), pero debido a algo interno no puede.

entonces paracarpetas normalesel límite es 65536 -2 para .y ..= 65534 entradas.
y para elpapelera de reciclajees 65536 -2 para .y ..y -2 para desktop.iniyINFO2
y-2 para un archivo temporal (?) = 65530 entradas
y con 65530 entradas es un máximo de 32765 archivos (ymenossi las extensiones son >3).

información relacionada