Guía completa de extensiones de archivos y código fuente

Última actualización: enero 13, 2026
Autor: Isaac
  • Las extensiones identifican el tipo de contenido y guían al sistema, compiladores e IDE sobre cómo tratar cada archivo en un proyecto.
  • Un mismo lenguaje puede tener varias extensiones, pero lo clave es cómo las herramientas interpretan cada sufijo en el proceso de compilación y enlace.
  • Conocer las extensiones típicas de sistema, multimedia, compresión y ofimática evita errores al manipular archivos críticos o al distribuir software.
  • Dominar las familias de formatos más usadas mejora la organización de proyectos, la compatibilidad entre herramientas y la seguridad del entorno.

Lista de extensiones de archivos y tipos de código fuente

Si alguna vez te has preguntado por qué un archivo termina en .c, .cpp, .zip o .jpg, estás en el sitio adecuado para conocer las extensiones de archivos más comunes.

¿Qué es una extensión de archivo y qué papel juega en el sistema?

Un archivo típico en un ordenador se compone de un nombre, un punto y una extensión (por ejemplo, PROGRAMA.EXE). Esa coletilla final no es decorativa: sirve para que el sistema operativo y las aplicaciones asocien el archivo con un tipo o formato concreto, como ejecutable, imagen, texto o código fuente.

Aunque solemos hablar de «tipo de archivo» como si dependiera solo de las letras de la extensión, en realidad el formato lo define el contenido interno. De hecho, es posible cambiar manualmente la extensión y “engañar” al sistema: si renombramos INSTALADOR.EXE a INSTALADOR.JPG, seguirá siendo un ejecutable, pero Windows intentará abrirlo con el visor de fotos y mostrará un error.

La extensión funciona como un “apellido” del archivo: no altera su esencia, pero facilita reconocerlo y asociarlo a un programa por defecto. Por eso el sistema operativo mantiene una tabla interna donde cada extensión se vincula a una acción: abrir con tal aplicación, ejecutarlo, tratarlo como texto, etc.

En Windows, además, las extensiones se suelen ocultar para los tipos más conocidos. Esto evita que un usuario cambie la extensión sin querer al renombrar un documento, pero también complica distinguir, por ejemplo, un vídeo .mp4 de un ejecutable .exe camuflado. Activar la opción para mostrar las extensiones de nombre de archivo ayuda a identificar amenazas como scripts .bat o .vbs disfrazados.

Podemos dividir los ficheros en dos grandes familias, según los tipos de archivo: archivos ejecutables (programas, scripts, librerías) y archivos de datos (documentos, imágenes, audio, bases de datos…). Los primeros están diseñados para ser interpretados o ejecutados por el sistema, mientras que los segundos almacenan información que se consume desde otra aplicación.

Extensiones de archivos de código fuente y proyectos de programación

En el terreno del desarrollo, las extensiones señalan el lenguaje y el rol del fichero dentro del proyecto. Un mismo lenguaje puede tener varias extensiones: los programas en C suelen terminar en .c, pero en C++ encontramos .cpp, .cc, .cxx, e incluso .cp. Todas apuntan a código C++, aunque las convenciones varían según sistema, compilador o estilo del equipo.

La razón de que existan varias extensiones para un mismo lenguaje es histórica y práctica. Algunos compiladores de Unix preferían .cc, otros .C, en Windows se popularizó .cpp, y ciertas herramientas distinguen entre archivos de cabecera (.h, .hpp, .hxx) y archivos de implementación (.cpp, .cxx, etc.). Al final, lo relevante es cómo el compilador y el entorno de desarrollo interpretan cada extensión.

En Visual Studio y otros IDE, los proyectos agrupan distintos tipos de archivo: código fuente, cabeceras, recursos, scripts de compilación, configuraciones, etc. Cada extensión indica al entorno si el archivo debe compilarse, enlazarse, tratarse como recurso o simplemente copiarse al resultado final. Así, la extensión condiciona el papel del fichero en el proceso de build.

C y C++ es habitual encontrar:

  • .c, .cpp, .cc, .cxx, .cp: código fuente principal de la aplicación.
  • .h, .hpp, .hxx: archivos de cabecera o inclusión.
  • .idl: archivos de definición de interfaces (IDL).
  • .obj, .o: objetos compilados pero aún no enlazados.
  • .exe, .dll: binarios ejecutables y librerías dinámicas generadas.

En lenguajes modernos también hay una relación clara entre extensión y rol: .cs (C#), .java (Java), .py (Python), .js (JavaScript), .ts (TypeScript), .rb (Ruby) o .php (PHP), entre muchos otros. Cada uno define ficheros de código fuente que son interpretados, compilados o empaquetados según el caso.

Las extensiones también se usan para clases de proyecto concretas: .vbproj, .csproj, .vcxproj en Visual Studio; .sln para soluciones; .vbg o .vbp en proyectos heredados de Visual Basic; .vdproj para proyectos de instalación, o .vcxitems para proyectos de elementos compartidos entre varios proyectos C++.

Archivos típicos de un proyecto de Visual Studio

Al crear una solución en Visual Studio para C++ u otros lenguajes, el IDE genera una estructura bastante consistente. Cada fichero, identificado por su extensión, tiene una función concreta en el ciclo de desarrollo, compilación y despliegue, y el entorno se apoya en esa extensión para saber cómo tratar el archivo durante el build y en el propio editor.

Algunos de los tipos más habituales en proyectos de escritorio clásicos son:

  • .asmx: archivos de implementación de servicios web ASP.NET.
  • .asp: páginas Active Server antiguas con lógica en servidor.
  • .atp: archivos de proyecto de plantillas de aplicación.
  • .bmp, .dib, .gif, .jpg, .jpe, .png: recursos de imagen generales.
  • .bsc: bases de datos de código para el explorador de símbolos.
  • .cpp, .c: código fuente principal en C y C++.
  • .cur, .ico: cursores e iconos gráficos en mapa de bits.
  • .dbp: proyectos de base de datos.
  • .disco: documentos de detección dinámica de servicios web XML.
  • .exe, .dll: ejecutables y librerías dinámicas generados por los proyectos.
  • .htm, .html, .xsp, .htc, .hta, .xml: archivos web y de marcado habituales.
  • .HxC: proyectos de ayuda integrados.
  • .idb: archivos de estado de compilación incremental para recompilación mínima.
  • .idl: definiciones de interfaces en lenguaje IDL.
  • .ilk: ficheros intermedios de enlazado incremental.
  • .map: mapas de enlazador con la distribución de símbolos.
  • .mfcribbon-ms: recursos XML que definen la cinta de opciones MFC.
  • .obj, .o: objetos compilados todavía no enlazados.
  • .pch: cabeceras precompiladas para acelerar la compilación.
  • .rc, .rc2: scripts de recursos (cadenas, iconos, menús…).
  • .sbr: ficheros intermedios para el explorador de código fuente.
  • .sln: archivo de solución que agrupa múltiples proyectos.
  • .suo: opciones de usuario de la solución (configuración local del entorno).
  • .txt: textos auxiliares, notas o “léeme”.
  • .vap: proyectos de Visual Studio Analyzer.
  • .vbg: grupos de proyectos heredados.
  • .vbp, .vip, .vbproj: proyectos de Visual Basic.
  • .vcxitems: proyectos de elementos compartidos para C++.
  • .vcxproj: proyectos C++ de Visual Studio modernos.
  • .vcxproj.filters: definición de filtros del Explorador de soluciones.
  • .vdproj: proyectos de despliegue.
  • .vmx: proyectos de macros.
  • .vup: proyectos de utilidades.
  Error Windows Update 80072EFE: Solucionar Errores Rápido y Fácilmente

Estos archivos suelen organizarse en carpetas lógicas (Código fuente, Encabezados, Recursos, etc.), pero el desarrollador puede reordenar, crear nuevas carpetas y agrupar por funcionalidad: por ejemplo, todo lo relacionado con la interfaz de usuario, pruebas automatizadas, documentación o scripts y, cuando toca renombrar varios ficheros, conocer cómo renombrar por lotes archivos.

Cuando se añade un nuevo elemento a un proyecto de Visual Studio, lo normal es que se incorpore automáticamente a todas las configuraciones (Debug, Release…). Esto significa que lo que agregas afecta tanto a la compilación de depuración como a la de producción, salvo que cambies manualmente las propiedades de inclusión.

Extensiones de archivos de programación y desarrollo

Más allá del ecosistema concreto de un IDE, existe toda una familia de extensiones típicas del mundo del desarrollo de software. No todas son código fuente puro: también hay librerías estáticas, archivos de proyecto, paquetes, plantillas o scripts. En general, cada lenguaje y herramienta define sus propios formatos asociados.

Entre las extensiones de programación más habituales encontramos:

  • .c, .cpp, .h: código y cabeceras de C/C++.
  • .cs: archivos de código C# (CSharp).
  • .java, .class, .jar: código Java, clases compiladas y archivos Java Archive (ZIP con manifiesto).
  • .py: scripts de Python.
  • .js, .mjs: scripts de JavaScript.
  • .vb: código fuente de Visual Basic.
  • .sql: scripts de lenguaje SQL para bases de datos.
  • .php: código fuente PHP para servidores web.
  • .rb: scripts en Ruby.
  • .swift, .kt: archivos Swift y Kotlin para desarrollo móvil.

Al mismo tiempo, en entornos Unix y Linux son muy comunes las extensiones ligadas a packaging y bibliotecas: .a o .ar para librerías estáticas, .so para librerías compartidas, .sh para scripts de shell, así como archivos de empaquetado clásicos como .tar, .cpio o .shar. Todos ellos facilitan distribuir código, dependencias y recursos de forma agrupada.

También existen formatos específicos de archivo para lenguajes de marcado y configuración muy ligados al desarrollo: .xml, .json, .yml, .ini, .cfg, .toml o .properties, que no son código ejecutable pero sí definen parámetros de compilación, despliegue o comportamiento de aplicaciones.

Extensiones de archivo y compiladores: ¿solo sirven para “saber qué compilar”?

Podría parecer que la utilidad principal de la extensión es indicar al compilador qué lenguaje está leyendo y cómo debe analizarlo. Y sí, en parte es así: muchos compiladores tienen reglas internas como “los .c son C, los .cpp son C++, los .m son Objective-C…”, de modo que usan la extensión para elegir el front-end de compilación correcto.

Sin embargo, el papel de la extensión va mucho más allá. Los compiladores y toolchains la aprovechan para:

  • Distinguir entre archivos que deben compilarse y otros que son solo recursos.
  • Aplicar reglas de preprocesado diferentes según el tipo de archivo.
  • Generar objetos con nombres coherentes a partir del nombre base (foo.c → foo.obj).
  • Elegir si un fichero va a formar parte del link final o se queda como archivo auxiliar.

En algunos compiladores se puede forzar el lenguaje mediante opciones (por ejemplo, indicando que trate todos los archivos como C++ aunque terminen en .c), pero lo habitual es respetar las convenciones de extensión del ecosistema. Eso facilita que herramientas de terceros, analizadores estáticos, indexadores de código o incluso buscadores como Google identifiquen correctamente el tipo de contenido (por ejemplo, buscando con filetype:c, filetype:py, etc.).

En entornos modernos, la extensión también influye en el editor: coloreado de sintaxis, autocompletado, formato automático y otras funciones se activan al detectar un .cs, .java o .py. En repositorios de código, la plataforma reconoce el lenguaje en base a la extensión y aplica resaltado y métricas adecuadas.

  Cómo Formatear mi PC sin Borrar Windows: Pasos para Realizar

Tipos de archivo generales y sus extensiones más comunes

Dejando a un lado el código, merece la pena tener una panorámica de las principales familias de archivos y sus extensiones más habituales. Esto ayuda tanto al usuario general como al desarrollador que maneja proyectos complejos, donde conviven recursos de todo tipo y conviene saber qué es cada cosa antes de tocarla. Por ejemplo, es útil conocer qué extensiones son habituales en la ofimática.

Entre los grupos más frecuentes de extensiones podemos mencionar:

  • Texto: txt, md, rtf.
  • Ofimática: docx, xlsx, pptx, odt, ods, odp.
  • Imagen: jpg, jpeg, gif, bmp, png, heic, webp.
  • Vídeo: avi, mov, mp4, mpeg, wmv, mkv, flv.
  • Audio: mp3, aac, ogg, wav, wma, flac.
  • Sistema / ejecución: exe, bat, dll, sys, com.
  • Comprimidos: zip, rar, 7z, tar, gz, bz2.
  • Lectura: pdf, epub, azw, ibook.
  • Imágenes de disco: iso, img, mds, cdi.

En cada categoría hay extensiones de uso masivo (como .jpg o .mp3) y otras más especializadas o históricas (como .bmp o .wri). Muchas surgieron ligadas a un software concreto (Photoshop, Corel, AutoCAD, Nero, etc.) y se consolidaron como formatos de trabajo internos con funciones avanzadas (capas, vectores, estilos, efectos…).

Extensiones y ficheros del sistema: lo que no conviene tocar

Los archivos de sistema son aquellos que el propio sistema operativo y los programas necesitan para funcionar. Aquí encontramos controladores, librerías compartidas, ficheros de configuración, scripts de arranque y otros elementos delicados que no conviene mover ni editar si no se sabe muy bien lo que se está haciendo, porque un simple cambio puede provocar fallos graves. Esto es especialmente cierto con scripts como .bat o .cmd.

Entre las extensiones de sistema más representativas en entornos Windows destacan:

  • .SYS, .DRV, .VXD: controladores de dispositivo y componentes del sistema.
  • .DLL, .OCX: librerías y controles compartidos por múltiples programas.
  • .INF, .PNF: información de instalación de dispositivos y drivers.
  • .INI, .CFG, .CNF: ficheros de configuración.
  • .REG, .KEY: entradas y scripts de registro de Windows.
  • .BAT, .CMD, .VBS, .JS, .WSF, .WSH: scripts de automatización y comandos.
  • .EXE, .COM: ejecutables clásicos.
  • .MSC: consolas de administración (MMC).
  • .SCR: salvapantallas (en realidad ejecutables con otra extensión).
  • .MSI, .MSP: paquetes y actualizaciones de Windows Installer.
  • .CAT, .CER, .CRT, .DER, .P7C, .CRL: certificados y catálogos de seguridad.
  • .TMP, .BAK: archivos temporales y copias de seguridad.

En desarrollos para Windows conviene distinguir bien qué archivos forman parte del código propio y cuáles son archivos de soporte del sistema o del runtime. Eliminar una .dll o un .sys “que parece que no hace nada” es una de las recetas más rápidas para un sistema inestable.

Archivos de audio y vídeo: formatos y extensiones clave

En multimedia, cada extensión combina un contenedor (cómo se empaquetan los datos) y uno o varios códecs (cómo se comprimen el audio y el vídeo). De ahí que a veces podamos oír el sonido pero no ver la imagen, o al revés, si el reproductor no tiene los códecs adecuados para ese formato concreto.

Entre los audios más comunes tenemos:

  • .mp3: compresión con pérdida muy extendida para música.
  • .aac: usado en streaming y plataformas modernas.
  • .flac: formato sin pérdida, ideal para audio de alta calidad.
  • .wav: audio sin comprimir, típico en Windows.
  • .ogg, .opus: formatos libres, usados en proyectos open source y servicios como Spotify o apps de mensajería.
  • .wma: audio de Windows Media.
  • .mid, .midi, .kar: secuencias MIDI, más “partituras” que audio real.

En vídeo, la variedad es aún mayor. Algunas extensiones muy habituales son:

  • .mp4: contenedor generalista y estándar de facto para la web.
  • .avi: muy popular en la época de los códecs DivX/Xvid.
  • .mkv: contenedor Matroska, flexible y apto para vídeo de alta calidad.
  • .mov: formato preferente en el ecosistema Apple (QuickTime).
  • .wmv: vídeo de Windows Media.
  • .flv: clásico de Flash, hoy prácticamente en desuso.
  • .webm: formato abierto pensado para la web.

Para el desarrollador, estos formatos son relevantes no solo a la hora de reproducir contenido, sino también para integrarlos en aplicaciones, juegos o sitios web, elegir la mejor relación calidad/tamaño y asegurar compatibilidad entre plataformas.

Archivos comprimidos y empaquetado

Los ficheros comprimidos permiten agrupar múltiples archivos y reducir su tamaño para almacenarlos o transmitirlos más fácilmente, y en caso de necesitar dividirlos conviene saber cómo dividir archivos comprimidos en partes.

Algunos formatos clave:

  • .zip: estándar de facto en Windows, soportado de forma nativa por muchos sistemas.
  • .rar: muy eficiente y con buenas funciones de recuperación; popularizado por WinRAR.
  • .7z: formato libre de 7-Zip, con alta tasa de compresión.
  • .tar: empaquetador clásico de Unix, a menudo combinado con .gz, .bz2 o .xz (tar.gz, tar.bz2…).
  • .gz, .bz2, .lz, .lzma: compresores de flujo muy comunes en distribuciones Linux.
  • .iso, .dmg, .mds, .ccd: imágenes de disco para CD, DVD o volúmenes ópticos.

En desarrollo, estos formatos se emplean constantemente para empaquetar distribuciones de código, binarios, backups y recursos. También son la base de muchos formatos más sofisticados: JAR, WAR, APK o incluso algunos formatos de juego son, en el fondo, ZIP o TAR con estructura específica.

  Restaurar Sistema en Modo Seguro Windows 7: Guía Paso a Paso

Imágenes raster y vectoriales: extensiones gráficas más importantes

En el apartado gráfico podemos distinguir entre imágenes de mapa de bits (raster) y gráficos vectoriales. Las primeras se basan en píxeles; las segundas en formas y trazos escalables. Esta diferencia se refleja también en sus extensiones, y en cómo los programas las procesan, comprimen y muestran.

Entre los formatos raster más conocidos están:

  • .bmp: mapa de bits de Windows, poco eficiente en tamaño.
  • .jpg, .jpeg: compresión con pérdida muy utilizada en fotografía.
  • .png: compresión sin pérdida con soporte de transparencia.
  • .gif: hasta 256 colores, animación por fotogramas, muy usado en la web.
  • .tif, .tiff: estándar en artes gráficas, admite múltiples variantes y compresiones.
  • .webp: formato moderno optimizado para la web.
  • .raw, .nef, .cr2, .dng: negativos digitales de cámaras de fotos.
  • .psd, .psp, .pdn, .xcf: formatos nativos de programas como Photoshop, Paint Shop Pro, Paint.NET o GIMP, con capas y metadatos.

En el mundo vectorial destacan:

  • .ai: archivos de Adobe Illustrator.
  • .cdr: gráficos de CorelDRAW.
  • .svg, .svgz: gráficos vectoriales escalables basados en XML.
  • .eps, .ps: PostScript y Encapsulated PostScript, muy usados en impresión profesional.
  • .pdf: formato de documento que mezcla vector, texto e imagen raster.
  • .swf: animaciones vectoriales de Flash.
  • .wmf, .emf: metarchivos de Windows, con mezcla de elementos vectoriales y raster.

Para desarrolladores que trabajan con interfaces, gráficos de juego o generación de documentos, elegir bien entre raster o vector y el formato concreto es clave para lograr buena calidad, rendimiento y compatibilidad con navegadores, impresoras y librerías de terceros.

Documentos de texto, ofimática y formatos de lectura

Los documentos de texto se pueden dividir en texto plano y texto enriquecido. El texto plano solo almacena caracteres, mientras que el enriquecido añade información de formato: tamaños de fuente, estilos, colores, imágenes incrustadas, etc. Por eso un simple .txt se abre con casi cualquier editor, mientras que un .docx necesita software que entienda estructuras complejas y marcado interno.

  • .txt: texto plano, universal y ligero.
  • .md: documentos en Markdown, texto plano con marcado ligero.
  • .rtf: Rich Text Format, intercambiable entre muchos programas.
  • .doc, .docx: documentos de Microsoft Word.
  • .odt: texto de OpenDocument (LibreOffice, OpenOffice).
  • .pdf: formato de lectura fijo, ideal para distribución.
  • .pages: documentos del procesador de textos de Apple.
  • .gdoc: accesos a documentos de Google Docs mediante Google Drive.

En hojas de cálculo y presentaciones encontramos extensiones como .xlsx, .xls, .ods, .csv para datos tabulares, y .pptx, .ppt, .odp en el terreno de las diapositivas. Cada suite (Microsoft Office, LibreOffice, iWork…) maneja sus propios formatos nativos y, a la vez, es capaz de importar y exportar formatos estándar para facilitar el intercambio de documentos.

Otras familias de extensiones relevantes para desarrollo y uso avanzado

La lista de extensiones es casi infinita, pero hay algunos grupos especialmente interesantes para perfiles técnicos: imágenes de disco, máquinas virtuales, suites de grabación, suites Adobe y Affinity, paquetes de ofimática libres, navegadores, mensajería, internet en general y otros tantos.

Ejemplos reseñables:

  • Imágenes de CD/DVD: iso, mds, ccd, cdi, img, nrg.
  • Máquinas virtuales: vbox, vdi, vhd, vmdk, vmc, nvram.
  • Nero y suites de grabación: nrg, nra, nrh, nrb, nre, nri, nru, nrv, ccd.
  • Adobe: psd (Photoshop), ai (Illustrator), indd (InDesign), fla y swf (Flash), pdf.
  • Affinity: afphoto, afdesign como formatos nativos de proyectos.
  • OpenOffice/LibreOffice: odt, ods, odp, ott, ots, odg, odf, odc, odb y los formatos heredados sda, sdc, sdd, sdw, etc.
  • PowerPoint: ppt, pptx, pot, pps, ppa, variantes html.
  • Word: doc, docx, dot, wbk, plantillas y asistentes.
  • Excel: xls, xlsx, xlt, csv, xla, xll, xlm, xlb, xlk.
  • Windows Media: wma, wmv, asx, wmp, wms, wmx, wmz, wpl, wvx.
  • Mensajería: ctt (MSN), ymg/yps (Yahoo Messenger), crypt12/crypt15 en bases de datos de WhatsApp, wastickers.
  • Internet y web: html, htm, css, js, jsp, php, asp, xml, xsl, rss, eml, msg, mht, mhtml, vcf, vcs, url.

En el desarrollo web y de aplicaciones conectadas resulta clave conocer al menos las extensiones de lenguajes de servidor (php, asp, jsp), de cliente (html, css, js) y de datos intercambiados (json, xml, rss). Esto influye en cómo los servidores sirven el contenido (cabeceras MIME), cómo los navegadores lo renderizan y también cómo los buscadores indexan cada recurso.

Finalmente, hay toda una constelación de extensiones menos visibles pero muy presentes en el día a día técnico: binarios (.bin), archivos parcialmente descargados (.crdownload), extensiones de navegador (.crx, .xpi), listas de reproducción (.m3u, .pls), recursos 3D (.max, .3ds, .obj), ficheros de configuración de bases de datos (.cnf), y así hasta llegar a cientos y cientos de variantes.

Aunque parezca un simple sufijo tras un punto, la extensión concentra una enorme cantidad de información práctica. Entender bien los tipos de archivo más habituales, especialmente los ligados a código fuente, compilación, recursos y formatos de distribución, permite trabajar con más seguridad, diagnosticar problemas más rápido y organizar mejor cualquier proyecto de software o entorno de trabajo.

Artículo relacionado:
¿Cómo activar las extensiones de los archivos?