¿Cuánto espacio consumen los directorios?

¿Cuánto espacio consumen los directorios?

¿Cuánto espacio ocupan los directorios vacíos?

En los sistemas de archivos Windows y NTFS dice "0 bytes", lo cual es imposible.

¿Cuánto ocupa realmente un directorio? ¿Depende del sistema de archivos o del sistema operativo?

Respuesta1

Técnicamente lo que le muestra la ventana Propiedades es el contenido de la carpeta, que si está vacía ocupa 0 bytes en cualquier disco.

Tu pregunta trata sobre en qué espacio está la carpeta.estructuraocupa un sistema de archivos, que obviamente depende de él. En FAT32 lo único que necesita almacenar son algunas banderas (ocultas, archivadas) y el nombre y la ruta. En NTFS también necesitas almacenar permisos y algunas cosas más. En definitiva, ese espacio es casi insignificante.

El espacio es un directorio vacío.estructuraocupa depende del nombre y la ruta de la carpeta. Como ejemplo, supongamos que coloca todas las carpetas en una unidad raíz (digamos C:) y utiliza los 26 caracteres alfabéticos; con mil millones de nombres únicos, puede tener log_26 (1.000.000.000) = aproximadamente 7 (6.3065) nombres de carpeta de longitud de caracteres. Entonces, 7 Bytes * 1.000.000.000 equivalen aproximadamente a 7 GB de espacio.

Este es un mínimo basado únicamente en la cantidad de espacio que los nombres deben ocupar en cualquier estructura. Como se mostrará, los sistemas de archivos almacenan mucha más información además del nombre del archivo en su estructura de archivos.

Creo que tengo alrededor de 1 millón de carpetas y archivos en todas mis unidades, por lo que ese valor ni siquiera se alcanza en la realidad. No olvide que esta es una estimación muy aproximada.


Los sistemas de archivos más utilizados en la actualidad pueden considerarse (posiblemente) FAT (File Allocation Table) y NTFS (New Technology File System).GORDOcomo sabemos, se ha utilizado desde 1996, cuando se lanzó Windows 95 con FAT32. Aunque reemplazado por otros sistemas de archivos más resistentes, como NFTS (Windows), HFS+ (OSX) o ext3 (Linux), todavía se usa ampliamente en dispositivos portátiles o en tarjetas de memoria o unidades flash, ya que es compatible con la mayoría de los sistemas operativos. y sobre todo, es sencillo.

Ahora lo que importa. Los archivos y directorios en una partición FAT, incluso si no tienen nada dentro, tienen un nombre, una ubicación, ciertos atributos, etcétera, que se almacenan en una zona llamadatabla de directorio.

Eltabla de directorioes un archivo especial (es decir, está oculto para el uso habitual, de modo que sólo el sistema operativo y determinadas aplicaciones pueden acceder a él directamente). Representa un directorio (también conocido como carpeta) y cualquier archivo o carpeta almacenado en él tiene una entrada de 32 bytes en la tabla. como eltabla de directorioes un archivo, entonces ocupa uno o más grupos (es decir, cajas con un tamaño preestablecido dentro de un disco, donde sólo cabe un único archivo (o una parte de uno).

Entonces, cualquier carpeta o directorio, en una unidad moderna (>512 MB), tieneal menosuna sobrecarga de 4 KB, para almacenar la tabla(fuente). Sin embargo, esto significa que puede almacenar 128 archivos diferentes (4 * 1024 B / 32 B = 128) en la misma carpeta y la sobrecarga al almacenar los registros sigue siendo la misma de 4 KB que antes.

Siguiendo el primer ejemplo, esto significaría que los mil millones de carpetas tendrían una sobrecarga de 32 GB, en lugar de los aproximadamente 7 GB estimados que calculé. Estos 32 GB almacenan no sólo el nombre corto (8 caracteres ASCII), sino también los atributos, banderas, fechas de acceso, creación y modificación y otros atributos heredados.

Suponiendo que hayas leído todo esto, es posible que tengas una pregunta: "Bueno, todo esto está muy bien, pero ¿cómo son los nombres largos, comowabbjacko incluso nombres hashy comoe4d909c290d0fb1ca068ffaddf22cbd0, almacenado?"

Microsoft en Windows 95 decidió agregar esa característica para mejorar la experiencia del usuario. Para evitar romper un sistema "casi estándar", utilizaron una solución alternativa llamada VFAT (Virtual FAT). Básicamente, para encajar el nombre largo del archivo en el archivo, se escribieron registros adicionales antes del registro del archivo real (con algunos atributos especiales que no se podían ver en sistemas anteriores). El sistema de nombres de archivos largos permite una longitud máxima de 255 caracteres UTF-16 (Unicode)(fuente) (fuente).

Si cambiara el primer ejemplo de modo que cada carpeta tuviera 9 caracteres, entonces la sobrecarga se duplicaría de 32 GB a 64 GB, ya que sería necesario escribir un registro más para almacenar el nombre largo.


De acuerdo con laWikipediaartículo sobre NTFS, todos los permisos se almacenan en la tabla de archivos maestros. Su espacio se puede ver aparentemente a través del Desfragmentador de disco, como se muestra enaquí.

El tamaño que ocupa un registro MFT tanto de una carpeta como de un archivo se describe enaquí:

Los registros de archivos y carpetas son de 1 KB cada uno.y se almacenan en la MFT, cuyos atributos se escriben en el espacio asignado en la MFT. Además de los atributos del archivo, cada registro de archivo contiene información sobre la posición del registro de archivo en la MFT.

Cuando los atributos de un archivo pueden caber dentro del registro del archivo MFT de ese archivo, se denominan atributos residentes. Los atributos como el nombre del archivo y la marca de tiempo siempre son residentes. Cuando la cantidad de información de un archivoNo encajaen su registro de archivo MFT, algunos atributos de archivo se vuelvenno residente.A los atributos no residentes se les asigna uno o más grupos de espacio en disco.. Una parte del atributo no residente permanece en la MFT y apunta a los clústeres externos. NTFS crea el atributo Lista de atributos para describir la ubicación de todos los registros de atributos. La tabla Tipos de atributos de archivos NTFS enumera los atributos de archivos definidos actualmente por NTFS.

Entonces, en NTFS, las carpetas ocupan al menos 1 KB de espacio, a menos que tengan listas de argumentos y permisos muy largas; en ese punto, el registro MFT ocupa un clúster adicional en la partición, cuyo tamaño depende de cómo se formateó, aunque para más de 2 GB Microsoft en esa publicación recomienda clústeres de 4 KB.

Respuesta2

Para un ejemplo del mundo real, simplemente registré mi espacio libre, luego creé una estructura de directorio grande y resté el nuevo espacio libre para encontrar cuánto espacio se usó. Creé directorios 0-6 para cada día de la semana, luego dentro de los directorios 0-23 para las horas del día, luego 0-59 para los minutos de la hora. En total sus 10.080 directorios. El uso de mi disco cambió en 6.926.336 bytes. Eso equivale a 687 bytes por directorio. En caso de que le importe, eso también equivale al 0,0006% de una unidad de 1TB (si calcula 1TB como 1024^4).

Respuesta3

En Windows 10 creé 1.000.000 de carpetas vacías y, según Pythongetsizefunción, ocupó 200540160 bytes de espacio. Eso es un promedio de 200,54016 bytes por carpeta.

información relacionada