¿Cómo encuentra un acceso directo de Windows un archivo movido? — La ubicación de un archivo y su identidad son cosas distintas

· Actualizado el: · · Windows, Sistema de archivos, NTFS

Creó un acceso directo en el escritorio para abrir un anteproyecto guardado en la carpeta Borradores. Más tarde movió el anteproyecto a la carpeta Entrega.

No volvió a crear el acceso directo. Aun así, un doble clic puede seguir abriendo el anteproyecto en su nueva ubicación.

¿Por qué encuentra un archivo que ya no está donde estaba?

Un acceso directo recuerda más que una ubicación. También puede llevar información para volver a buscar un destino que ya no encuentra. Este artículo sigue esa búsqueda usando un .lnk corriente que apunta a un archivo normal.1

1. Mire primero en la ubicación antigua

Supongamos que mueve el anteproyecto de C:\Work\Borradores\anteproyecto.txt a C:\Work\Entrega\anteproyecto.txt en el mismo volumen NTFS.

Sigue habiendo un solo archivo, y solo ha cambiado dónde está. La ruta guardada en el acceso directo, en cambio, sigue apuntando a Borradores.

Mover el anteproyecto separa la ruta antigua de su ubicación actualLa carpeta Borradores que el acceso directo recuerda ya no contiene el anteproyecto, y ese mismo anteproyecto se ha movido a la carpeta Entrega.Acceso directoBorradores - ya no está ahíEl mismo anteproyectoEntrega - está aquí

Figura 1: Un mecanismo que siguiera solo la ubicación antigua se toparía aquí con un callejón sin salida.

El shell de Windows también comprueba primero si el destino está en la ubicación guardada. No se rinde necesariamente, sin embargo, en cuanto no lo encuentra allí. Continúa un procesamiento que busca de nuevo con la información de que disponga. Es lo que se llama resolución de vínculo.2

El formato de archivo .lnk contiene más que información sobre dónde está el destino. También tiene campos que registran datos como la fecha de creación y el tamaño, y sobre esa base se definen bloques de datos adicionales que transportan información de seguimiento. La única línea que aparece como Destino en el cuadro de propiedades no es todo lo que un acceso directo contiene.34

¿En qué se apoya entonces cuando también ha cambiado el nombre?

En el diagrama, una línea continua marca una relación que siempre se cumple y una línea discontinua una relación condicional (las condiciones están en la explicación de cada relación en la página de detalle). La lista completa de relaciones (5 en total, con evidencia y grado de certeza) y las definiciones de los conceptos principales están reunidas en la página de detalle del mapa de conocimiento (en japonés). Datos: JSON-LD / Turtle

2. Una etiqueta con el nombre que sobrevive a un cambio de nombre

Cambie ahora el nombre del anteproyecto movido a Entrega por propuesta.txt. Han cambiado tanto la ubicación como el nombre, pero movió y renombró el archivo original en lugar de crear otro distinto.

Lo que ayuda en una situación así son identificadores independientes de la ubicación y del nombre.

El mecanismo de Windows llamado seguimiento de vínculos distribuidos usa el id. de objeto asociado a un archivo o carpeta en NTFS. Un id. de objeto no es un atributo obligatorio; equivale a una etiqueta con el nombre que identifica un elemento al que se quiere seguir. Se proporciona además un índice para buscar los id. de objeto dentro de ese volumen.5

Supongamos, por ejemplo, que el anteproyecto lleva la etiqueta K. K es un símbolo usado para esta explicación, no el formato real de un identificador.

Identificadores que sobreviven a un movimiento y a un cambio de nombre en un mismo volumenCuando se conserva la información de seguimiento, la misma etiqueta con el nombre es la pista para seguir el anteproyecto de Borradores hasta la propuesta de Entrega aunque hayan cambiado el nombre y la ubicación.Mover y renombrarBuscar con K como pistaanteproyecto.txt con la etiqueta Kpropuesta.txt con la etiqueta KInformación de seguimiento en el acceso directo

Figura 2: Dónde está un archivo puede cambiar sin que cambien con ello los identificadores usados para el seguimiento.

Cuando hay información de seguimiento disponible, la búsqueda no se limita a rastrear el nombre antiguo por todas las carpetas; el destino tras el movimiento puede hallarse a partir de los identificadores. El TrackerDataBlock de un .lnk puede almacenar la información entregada a este servicio de seguimiento.4

Cambiar de dirección no le convierte en otra persona. Del mismo modo, la ruta de un archivo puede cambiar mientras siguen ahí las pistas para seguir ese mismo archivo. Esa es una de las razones por las que un acceso directo sigue abriéndose tras un movimiento.

No todos los accesos directos se resuelven así, sin embargo. Cuando la etiqueta con el nombre no puede usarse, la búsqueda pasa a otro método.

3. Cuando el identificador no lo encuentra, se busca por características

¿Y si una carpeta cercana contuviera un archivo con la misma fecha de creación que el anteproyecto original y atributos parecidos? Eso lo convertiría en un candidato que podría ser el archivo original con un nombre nuevo.

El shell dispone también de una búsqueda que usa características de este tipo. La descripción oficial dice que, cuando el servicio de seguimiento no está disponible o el seguimiento no encuentra el destino, el shell busca en lugares como la carpeta original y sus alrededores candidatos cuyo nombre, fecha de creación, etc., coincidan.2

El recorrido hasta aquí puede resumirse así.

La pista se desplaza de la ubicación guardada al seguimiento y luego a las característicasSi el destino no está en la ubicación guardada, se prueba la información de seguimiento disponible, y si eso tampoco lo encuentra se intenta una búsqueda por características.No encontradoNo disponible o no encontradoComprobar la ubicación guardadaUsar la información de seguimientoBuscar candidatos con características coincidentes

Figura 3: Las líneas generales de la resolución de vínculo corriente. Que el seguimiento y la búsqueda lleguen a producirse depende además de la configuración y de cómo se realice la llamada.

Una etiqueta coincidente y unas características parecidas no son pruebas de igual fuerza. Si varios archivos comparten un nombre o una fecha de creación, las características por sí solas no pueden demostrar cuál es el verdadero destino. No es un mecanismo que compare todo el contenido para demostrar la identidad; es un mecanismo que vuelve a buscar un destino que ha perdido.

La búsqueda tampoco continúa sin límite. Una aplicación puede indicar marcas que suprimen el seguimiento o la búsqueda, y una directiva administrativa puede restringirlos. Que el archivo se haya abierto no le dice por sí solo qué pista hizo el trabajo.6

4. ¿Una copia con el mismo contenido es el mismo archivo?

Copie ahora propuesta.txt de Entrega a Distribución. El contenido es el mismo, pero ahora hay dos archivos. Edite solo uno de ellos y el otro conserva su contenido.

El id. de objeto tampoco se duplica sin más con una copia corriente. Si dos archivos del mismo volumen tuvieran el mismo identificador, la etiqueta con el nombre ya no podría distinguirlos. Microsoft explica que una copia no hereda el mismo id. de objeto que el original.5

Mover un archivo y copiarlo significan cosas distintas para la identidadMientras que mover conserva el mismo archivo, una copia corriente crea un archivo aparte que contiene el contenido, y el id. de objeto de seguimiento original no se duplica tal cual.Copia corrienteLa propuesta originalUn archivo de propuesta aparteLa etiqueta originalNo hereda la misma etiqueta

Figura 4: Hacer que el contenido sea el mismo no equivale a mover el propio archivo original.

Hay otro caso más que pilla a la gente desprevenida. Una vez movido el anteproyecto original a Entrega, ¿qué ocurre si se coloca un archivo distinto con el mismo nombre en la ahora vacante Borradores\anteproyecto.txt?

Como describía la sección 1, normalmente se comprueba primero la ubicación guardada. Si allí se encuentra un destino, puede que el proceso no llegue nunca a la fase de buscar la nueva ubicación. Dicho de otro modo: incluso con el seguimiento activo, no hay garantía de que el archivo original que movió sea el elegido.1

Un acceso directo es un punto de entrada cómodo para encontrar un destino que pueda abrir ahora. No es un mecanismo para demostrar, cada vez, que se trata del mismo archivo que antes. Una vez asumida esa distinción, la comodidad y los límites encajan.

5. Siga el mismo archivo en su propio PC

Si lo prueba, use un archivo de texto creado en una carpeta de pruebas local en lugar de un documento de trabajo. Empiece creando Borradores y Entrega en el mismo volumen NTFS, y mantenga las condiciones acotadas evitando carpetas sincronizadas y recursos compartidos de red.

Cree un archivo en Borradores, cree un acceso directo a él y compruebe que se abre desde ahí. Mueva a continuación solo el archivo a Entrega y abra el acceso directo. Después cambie el nombre del archivo e inténtelo otra vez. Compruebe cada vez qué archivo se ha abierto realmente.

Lo que está observando es si el acceso directo alcanza la nueva ubicación una vez que la antigua ya no sirve. Si no se abre, eso no contradice este artículo. El resultado cambia con las condiciones en que el seguimiento de NTFS está disponible, con la información que subsiste, con la configuración, etc. No espere el mismo resultado una vez que un archivo pasa a una memoria USB o a otro PC.56

Al escribir este artículo confirmé además el comportamiento con IShellLinkW::Resolve sobre NTFS local en Windows Server 2025 (compilación 26100). Tras un movimiento y un cambio de nombre se devolvió la nueva ruta, y en una prueba aparte en la que se colocó un archivo distinto en la ubicación original se devolvió la ruta antigua. Es una observación de la API en un entorno, no una prueba a través de la interfaz del Explorador de archivos en Windows 11 ni una verificación de qué ruta de búsqueda interna se utilizó. El registro de observación también está disponible.

Para realizar la comparación en la que se coloca un archivo distinto en la ubicación original, empiece de cero con otro archivo de prueba. Un acceso directo ya resuelto puede haber visto actualizada su información de vínculo, de modo que reutilizar el mismo acceso directo puede significar que ya no apunte a la ubicación antigua.2

6. Para desarrolladores: leer una ruta frente a volver a buscar

Cuando una aplicación trabaja con un .lnk, mantenga separada la lectura de la información guardada de la búsqueda de un destino perdido. Obtener la ruta con GetPath en IShellLink e intentar la resolución de vínculo con Resolve no son la misma operación.7

Cargar el acceso directo y después resolver el destinoCargar el vínculo con IPersistFile, intentar la resolución con Resolve y obtener la ruta resuelta con GetPath tras confirmar que ha tenido éxito.Confirmar el éxitoCargar el vínculoIntentar la resolución con ResolveObtener la ruta con GetPath

Figura 5: Leer la cadena de la ubicación original no equivale a haber buscado la nueva.

En el procesamiento automatizado, la interfaz que se muestra cuando no se encuentra nada, el tiempo dedicado a buscar, el uso del seguimiento y la actualización de la información de vínculo son también decisiones de diseño. Por ejemplo, SLR_NOSEARCH suprime la búsqueda por características y SLR_NOTRACK suprime el uso del seguimiento de vínculos distribuidos. Elija las marcas según su objetivo y no dé por éxito el haber abierto cualquier cosa.2

Tenga en cuenta que el id. de objeto de seguimiento y el id. de archivo obtenido de un identificador de archivo no son el mismo elemento. La comparación de id. de archivo implica también al volumen. No los mezcle porque ambos se llamen id.; compruebe de qué identificador, procedente de qué API, se trata. No hace falta reescribir a mano un id. de objeto.89

Además, el .lnk del que aquí se habla es un archivo del shell. Se diferencia de un vínculo simbólico, que actúa dentro de la resolución de rutas del sistema de archivos, por lo que esta descripción de la búsqueda no se traslada sin más a él.10


Un acceso directo recuerda más que la dirección antigua. Si la ubicación no encuentra el archivo, usa la información de seguimiento, y si esta no sirve, busca por características. Por eso a veces puede seguir un movimiento o un cambio de nombre. Y en cuanto entran en juego copias con el mismo contenido, o un archivo distinto colocado en la ubicación original, no siempre puede acertar con el destino original.

Artículos relacionados

Enlaces de referencia

  1. Microsoft Learn, IShellLinkW::Resolve. El seguimiento y la búsqueda por características, las distintas marcas y las condiciones para actualizar la información de vínculo.  2 3 4

  2. Microsoft Open Specifications, ShellLinkHeader. Los atributos del destino, las fechas y el tamaño almacenados en un .lnk. 

  3. Microsoft Open Specifications, TrackerDataBlock. Los datos de seguimiento adicionales entregados a la búsqueda del destino.  2

  4. Microsoft Learn, Distributed Link Tracking and Object Identifiers. Los id. de objeto, la diferencia en caso de copia, y el seguimiento de NTFS y sus restricciones.  2 3

  5. Microsoft Learn, ADMX_StartMenu Policy CSP. El control del seguimiento y la búsqueda con NoResolveTrack y NoResolveSearch.  2

  6. Microsoft Learn, IShellLinkW::GetPath. La obtención de la ruta del destino. 

  7. Microsoft Learn, GetFileInformationByHandle. La comparación por id. de archivo e información identificativa del volumen, y las restricciones de los identificadores. 

  8. Microsoft Learn, fsutil objectid. El id. de objeto de seguimiento y la información identificativa registrada al crearse. Una advertencia contra modificar los identificadores a la ligera. 

Artículos recientes con las mismas etiquetas para profundizar en temas cercanos.

Estas páginas sitúan el tema en un contexto más amplio de servicios y decisiones.

El artículo está directamente relacionado con los siguientes servicios.

Preguntas frecuentes

Preguntas habituales en las consultas sobre el tema del artículo.

¿Por qué un acceso directo sigue abriéndose después de mover el archivo original?
Porque un acceso directo .lnk corriente puede buscar de nuevo, usando la información de seguimiento disponible y las características del archivo, cuando la ruta guardada no encuentra el destino. No es una simple cadena de ruta. Según el sistema de archivos, la configuración y las condiciones de la búsqueda, sin embargo, el destino puede seguir sin aparecer.
¿Un acceso directo compara el contenido de los archivos para encontrar el original?
La resolución de vínculo que aquí se describe usa la ruta, el identificador de seguimiento de NTFS y datos como el nombre y la fecha de creación. No es un mecanismo que demuestre mediante comparación de contenido que un archivo es el original. Aunque copie un contenido idéntico, esa copia es un archivo distinto.
Si se coloca otro archivo con el mismo nombre en la ubicación original, ¿se abrirá el original movido?
No necesariamente. La resolución de vínculo corriente comprueba primero la ruta guardada, de modo que el otro archivo situado en la ubicación original puede tratarse como el destino. No confíe en el seguimiento automático como garantía de que siempre se elegirá un archivo concreto.
¿Está garantizado el seguimiento tras mover un archivo a una memoria USB o a otro PC?
No, no está garantizado. El seguimiento de NTFS y la búsqueda por características son mecanismos distintos, y el sistema de archivos de destino, la información de seguimiento que subsiste, los servicios y directivas y el estado de la conexión intervienen todos. Entregar a alguien solo el acceso directo no le entrega el archivo de destino.
¿Son lo mismo un acceso directo y un vínculo simbólico?
No, son distintos. Un .lnk es un archivo que el shell de Windows lee para resolver el destino. Un vínculo simbólico es un mecanismo aparte que participa en la resolución de rutas del sistema de archivos, y el comportamiento de búsqueda de un .lnk no se traslada a él.

Perfil del autor

Página de presentación del autor del artículo.

Go Komura

Representante de KomuraSoft LLC

Especializado en desarrollo de software para Windows, consultoría técnica e investigación de fallos, sobre todo en proyectos con sistemas existentes y errores difíciles de reproducir.

Volver al blog