Desde Cero: Búsqueda de Archivos que Rivalice Everything en C# Puro

Buscador de archivos en C puro que aprovecha el diario USN para rendimiento extremo, indexación en memoria y UI con Avalonia; proyecto código abierto.

5 sept 2025 • 5 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Es bien sabido que buscar archivos leyendo el diario USN es mucho más eficiente que recorrer carpetas de forma recursiva; aun así, alcanzar la velocidad extrema de herramientas como Everything no es trivial, porque unas pocas decenas de milisegundos pueden cambiar por completo la sensación de fluidez.

La interfaz de Everything hoy se percibe clásica y ciertas costumbres operativas no son fáciles de personalizar. Muchos usuarios desean un buscador que combine rendimiento extremo con hábitos propios, como atajos de teclado flexibles, menús contextuales ricos y encadenamiento de acciones. Por ello me propuse rediseñar desde cero un buscador de archivos en C puro, documentando el razonamiento y los obstáculos encontrados. El resultado es completamente de código abierto.

En Q2BSTUDIO impulsamos proyectos de alto rendimiento con foco en software a medida, aplicaciones a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Si buscas un desarrollo listo para producción y adaptable a tus procesos, descubre nuestro enfoque de desarrollo de aplicaciones a medida y software a medida.

Enfoque general. El sistema se divide en dos bloques principales: procesamiento de datos y experiencia de usuario. Procesamiento de datos: a. lectura de información de archivos desde la caché de disco mediante el diario USN, b. carga en memoria, c. concordancia de cadenas, d. retorno de resultados. Interacción de usuario: a. respuesta al input, b. ejecución de la búsqueda y recolección de resultados, c. actualización de la interfaz.

Lectura eficiente desde el diario USN. La base del rendimiento está en consumir el USN para extraer por registro al menos: FileReferenceNumber, ParentFileReferenceNumber y el nombre del elemento. El USN no entrega la ruta completa, por lo que la reconstruimos caminando los padres. La clave es la actualización incremental: al vigilar eventos como creación, eliminación y renombrado se refresca el índice con gran eficiencia frente a la monitorización de archivos tradicional. Consideraciones prácticas: requiere NTFS, privilegios elevados para acceso al journal y contemplar múltiples volúmenes.

Estrategia de búsqueda en memoria. Un barrido sobre todas las cadenas no basta. Mejores prácticas que funcionan: 1. Pre filtrado con índices compactos tipo huella de 64 bits que describen presencia de caracteres o rasgos. Con simples operaciones OR y AND se descartan gran parte de los candidatos antes de comparar texto, logrando aceleraciones de 2 a 3 veces en escenarios reales. 2. Paralelización con cabeza. Dividir el conjunto en particiones puede ayudar, pero la sincronización de resultados y contadores suele diluir las ganancias en colecciones con millones de entradas. Un diseño lock free o la agregación local por hilo y fusión al final mejora la situación. 3. Normalización agresiva. Unificar mayúsculas y minúsculas, eliminar diacríticos y aplicar una forma canónica de Unicode reduce coste en comparaciones. 4. Ranking útil. Dar más peso a coincidencias en el nombre del archivo frente a la carpeta, priorizar prefijos sobre coincidencias internas y premiar menor distancia entre tokens produce resultados percibidos como más inteligentes. 5. Opcionales como iniciales de pinyin y sinónimos pueden aportar valor, pero conviene medir su impacto, ya que añaden sobrecoste en cada coincidencia.

Retorno de resultados. Para minimizar la presión del recolector y el coste de asignaciones, es eficaz mantener un buffer de longitud fija con los mejores N resultados, actualizar contadores y referencias en una única pasada y paginar sobre ese buffer. La estabilidad del orden para resultados equivalentes mejora la percepción de consistencia.

Respuesta y renderizado de la UI. La experiencia de usuario es tan importante como el núcleo de datos. Probamos WinForms y Avalonia, quedándonos con Avalonia por su soporte AOT y una estética moderna con rendimiento similar. Separar con claridad el hilo de entrada del usuario del hilo de búsqueda permite mantener la interfaz siempre fluida. Un bucle de trabajo persistente, con señalización asíncrona y cancelación cooperativa, evita costes de creación y destrucción de tareas. Un pequeño debounce de 15 a 30 ms suele equilibrar reactividad y ahorro de búsquedas redundantes.

Virtualización obligatoria. Para listas enormes, generamos vistas virtualizadas: en WinForms el ListView virtual permite materializar solo lo visible; en Avalonia, una lista virtualizada combinada con un modelo reactivo genera elementos de forma perezosa y mantiene transiciones suaves incluso con millones de entradas. Las rutas y los iconos se resuelven de forma diferida y se cachean; cargar iconos de manera controlada elimina parpadeos y reduce saltos visuales. Atajos globales, historial de búsquedas, filtros por tipo, reglas de exclusión por ruta y acciones contextuales como abrir en terminal o copiar ruta completan la experiencia profesional.

Buenas prácticas adicionales. 1. Persistencia ligera del índice y del número de USN para rehidratar el estado al arrancar y saltar a actualizaciones incrementales sin reindexar todo el disco. 2. Telemetría opcional orientada a rendimiento y anónima para afinar tiempos de respuesta sin comprometer la privacidad. 3. Seguridad por diseño, evitando ejecuciones accidentales desde el buscador y aplicando principios de mínimo privilegio. 4. Compatibilidad con unidades externas y rutas de red, con políticas de tiempo de espera y reintentos.

Resultados y métricas. Con las técnicas anteriores, es factible obtener tiempos de respuesta de pocos milisegundos para consultas habituales, con un consumo de CPU moderado y huella de memoria predecible. En repositorios con más de cinco millones de entradas, el pre filtrado y la virtualización marcan la diferencia.

Evolución con inteligencia artificial. Sobre el motor de texto plano se pueden añadir sugieres de consulta, comprensión semántica del intento del usuario, expansión de sinónimos y agentes IA que priorizan resultados en función del contexto reciente. Si te interesa incorporar IA a tu buscador interno o a tus procesos de negocio, en Q2BSTUDIO podemos ayudarte con soluciones de inteligencia artificial e IA para empresas que integran modelos, métricas y gobierno de datos.

Cierre y código abierto. El proyecto es completamente abierto y puede servir como base para una implementación corporativa o un producto final. Si tienes ideas o sugerencias, anímate a colaborar y dejar una estrella en GitHub en el repositorio original del autor en https://github.com/LdotJdot/TDS. Y si necesitas una versión a medida, integración con tu infraestructura, paneles de control con power bi o refuerzo de ciberseguridad, cuenta con Q2BSTUDIO para llevarlo a producción con soporte integral.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat