Generador de árbol de carpetas
Crea un árbol de directorios limpio como el que imprime el comando tree, listo para pegar en un README, una pull request o documentación. Elige una carpeta de tu ordenador o escribe una lista con sangría; solo se leen los nombres de los archivos y no se sube nada.
Última actualización:
Usa espacios o tabulaciones para la sangría, termina los nombres de carpeta con / o pega una ruta por línea (src/app/main.js). También se entiende la salida del comando tree.
Cómo usar Generador de árbol de carpetas
- Añade tu estructura: escribe o pega una lista con sangría o una lista de rutas, o cambia a Elegir una carpeta y selecciona una carpeta de tu ordenador.
- Define patrones de exclusión como node_modules, .git o *.log para que los archivos de compilación y el desorden queden fuera del árbol.
- Elige un estilo: las líneas Unicode se ven mejor en GitHub y el ASCII es lo más seguro para archivos de texto plano y terminales.
- Ajusta los detalles con una profundidad máxima, orden con carpetas primero, barras finales, iconos o tamaños.
- Copiar para README te da el árbol dentro de un bloque de código ```text, o descárgalo como archivo de texto.
Formatos de entrada que entiende el generador
La herramienta detecta el formato del texto que pegas, así que puedes empezar con lo que ya tengas.
| Formato | Línea de ejemplo | Cómo se lee |
|---|---|---|
| Lista con sangría | components/ | Más sangría que la línea anterior significa “dentro de ella”. Las tabulaciones cuentan como cuatro espacios; las viñetas (-, *) se eliminan. |
| Rutas | src/api/routes.py | Cada línea se divide por / o \; las carpetas superiores se crean automáticamente. |
| Árbol existente | │ └── main.jsx | Los conectores de dibujo de cuadros y ASCII de tree o tree /A definen el nivel. |
| Marcador de carpeta | public/ | Una barra final marca una carpeta aunque no tenga nada dentro. |
| Comentario | main.jsx # punto de entrada | El texto después de #, // o <- (con un espacio antes) se conserva como comentario y se alinea. |
Guía rápida de patrones de exclusión
| Patrón | Oculta |
|---|---|
node_modules | Cualquier archivo o carpeta llamado node_modules, en todos los niveles |
*.log | Todos los archivos que terminan en .log |
build/ | Carpetas llamadas build (un archivo llamado build se mantiene) |
docs/drafts | Solo la carpeta drafts que está directamente dentro de docs en el nivel superior |
**/temp | temp a cualquier profundidad (igual que temp a secas) |
test_?.py | test_a.py, test_1.py y otras coincidencias de un solo carácter |
!keep.log | Recupera keep.log después de que *.log lo ocultara (las reglas posteriores prevalecen) |
Consejos para árboles de proyecto legibles
- Muestra la forma, no cada archivo. Una profundidad de 2 o 3 suele bastar para un README; los lectores quieren saber dónde está cada cosa, no ver cada archivo de prueba.
- Explica las carpetas importantes con comentarios breves como
src/ # código de la aplicación. Se conservan y se alinean en una columna. - Oculta la salida generada como
dist,build,coverage,.nexty__pycache__, además de los archivos de bloqueo si no son relevantes para el lector. - Usa un bloque de código. Fuera de un bloque delimitado, Markdown comprime los espacios y las líneas dejan de unirse. Copiar para README añade el delimitador por ti.
- Mantenlo actualizado pegando de nuevo el árbol anterior, editándolo como lista y volviendo a generarlo.
Preguntas frecuentes
¿Cómo pongo un árbol de carpetas en mi README?
Genera el árbol, pulsa Copiar para README y pégalo en README.md. El árbol va dentro de un bloque de código delimitado (```text) para que GitHub, GitLab y otros renderizadores de Markdown mantengan los espacios y los caracteres de línea alineados.
¿Se suben mis archivos cuando elijo una carpeta?
No. El navegador le da a esta página la lista de nombres, rutas y tamaños de los archivos de la carpeta que eliges, y el árbol se crea en tu navegador. Nunca se abre el contenido de los archivos y no se envía nada a ningún servidor.
¿Por qué faltan las carpetas vacías cuando uso Elegir una carpeta?
El selector de carpetas estándar solo enumera archivos, así que una carpeta sin archivos dentro no aparece. Arrastra la carpeta al recuadro en su lugar: arrastrar y soltar lee directamente la estructura de carpetas e incluye las carpetas vacías.
¿Cómo funcionan los patrones de exclusión?
Siguen las reglas de .gitignore. Un nombre como node_modules coincide con un archivo o carpeta con ese nombre en cualquier nivel, *.log coincide por extensión, una barra final (build/) coincide solo con carpetas, un patrón con barra (docs/drafts) se compara desde la carpeta superior, ** coincide con cualquier número de carpetas y ! vuelve a incluir algo que un patrón anterior excluyó.
¿Puedo pegar la salida del comando tree y modificarla?
Sí. Las líneas dibujadas con ├── └── │ o con la forma ASCII |-- `-- se reconocen y se reconstruyen, así que puedes pegar un árbol y luego cambiar el estilo, ordenarlo, añadir un límite de profundidad o quitar entradas con patrones de exclusión.
¿Cuál es la diferencia entre los estilos Unicode y ASCII?
Unicode usa caracteres de dibujo de cuadros (├── └── │) que parecen líneas continuas y coinciden con la salida predeterminada del comando tree de Linux. ASCII usa solo los caracteres |, ` y -, igual que tree --charset=ascii, lo que es más seguro para terminales antiguos, comentarios de código y sistemas sin compatibilidad completa con UTF-8.
¿Cómo genero un árbol desde la línea de comandos?
En Linux y macOS (después de instalarlo con un gestor de paquetes) ejecuta tree, por ejemplo tree -L 2 -I 'node_modules|.git' para limitar la profundidad e ignorar carpetas. En Windows, tree /F /A enumera los archivos con caracteres ASCII. Ambas salidas se pueden pegar aquí para limpiarlas.
¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?
Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.