OneDrive «Archivos bajo demanda» y las aplicaciones de negocio — las suposiciones que rompen los marcadores de posición, y cómo abordarlas

· Actualizado el: · · OneDrive, Archivos bajo demanda, KFM, Windows, Aplicaciones de negocio, Almacenamiento en la nube, Sistema de archivos, Investigación de fallos, Sistemas de información

Historial de revisiones (primera versión, publicada el 20 Aug 2026)
Primera publicación
Citar este artículo(DOI (archivo registrado): 10.5281/zenodo.22176329)

Los DOI siguientes remiten a versiones ya archivadas y pueden diferir del texto actual. Para citar el texto actual, utilice la URL de esta página.

Go Komura (2026). OneDrive «Archivos bajo demanda» y las aplicaciones de negocio — las suposiciones que rompen los marcadores de posición, y cómo abordarlas. KomuraSoft LLC. https://comcomponent.com/es/blog/onedrive-files-on-demand-business-apps/

DOI (archivo registrado)
10.5281/zenodo.22176329
DOI (última versión registrada)
10.5281/zenodo.22176330

«La aplicación de negocio no puede leer el CSV que guardé en el escritorio». «Tras cambiar el PC, el proceso de importación que funcionaba se detiene con “No se encuentra el archivo”». Como el Explorador muestra el archivo, a veces ni volver a guardarlo ni reiniciar la aplicación acercan a la causa.

En ese momento conviene comprobar por separado dónde está el archivo y si el contenido está en local. El Traslado de carpetas conocidas (KFM) de OneDrive cambia la ubicación del escritorio y similares, y Archivos bajo demanda deja el contenido en la nube hasta que hace falta. Ambos dan problemas cuando una aplicación de negocio asume un archivo local tradicional.12

Este artículo, dirigido a responsables de sistemas de pequeñas y medianas empresas y a desarrolladores de aplicaciones de Windows, empieza por un procedimiento de aislamiento para estas consultas. Después organiza el funcionamiento de los marcadores de posición y cómo leer los atributos, las trampas de las aplicaciones de negocio y las medidas del lado de desarrollo y del lado de informática.

1. Primero la conclusión — comprobar por separado el «lugar» y el «contenido»

Que el archivo se vea en el Explorador no garantiza ni que la aplicación apunte a la ruta correcta ni que el contenido se pueda leer de inmediato. Primero aísle estas dos cosas.

Suposición que cambia Función de OneDrive Efecto en las aplicaciones de negocio Qué comprobar primero
La ruta real del escritorio y similares KFM (Traslado de carpetas conocidas) Una aplicación que usa una ruta fija no encuentra el archivo después del traslado La ruta en la configuración de la aplicación y la ruta actual de la carpeta conocida
Que el contenido del archivo esté en el disco local Archivos bajo demanda La comprobación de existencia pasa, pero la lectura espera una descarga o falla El icono de estado, los atributos de archivo y si OneDrive está en ejecución

Obtenga las rutas trasladadas por KFM con las API de carpetas conocidas. Para Archivos bajo demanda, examine primero los atributos y abra solo los archivos cuyo contenido necesita. Archivos bajo demanda está activado de forma predeterminada en la aplicación de sincronización actual, y Microsoft también recomienda operarlo activado. Que haya un problema no obliga a desactivarlo en bloque desde el principio.134

La medida provisional es marcar las carpetas que el negocio necesita como «Mantener siempre en este dispositivo» y asegurar el contenido. Corregir una ruta equivocada, sin embargo, es otra tarea. La solución permanente es que el lado de la aplicación revise el destino de almacenamiento, la lectura y la supervisión, y que el lado de informática mantenga el estado necesario con fijado y directivas.

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 (16 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. Cómo aislar una consulta de «no se puede leer el archivo»

2.1. Comprobar 6 puntos, empezando por la ruta

No abra de golpe todos los archivos de la carpeta de destino: investigue a partir de la ruta y los metadatos. Es un procedimiento para pensar por separado la comprobación de existencia y la lectura.

# Qué comprobar Método Qué se averigua
1 Si la ruta está bajo OneDrive Confirmar la raíz de sincronización con echo %OneDrive% y cotejarla con la ruta de destino. Comprobar también la ruta real de «Escritorio» en la barra de direcciones del Explorador Si KFM y OneDrive intervienen en el problema
2 El estado del archivo Confirmar U (solo en línea), P (fijado) y O con attrib <ruta>. Mirar también «Tamaño en disco» en las propiedades Si el contenido está en local o es un marcador de posición
3 Si OneDrive está en ejecución El icono de la bandeja (inicio de sesión, pausa, error), Get-Process OneDrive Si se puede hidratar. 0x8007016A es típico de detención o mala configuración5
4 Red Proxy interno, ancho de banda, alcance al servicio de OneDrive Si la descarga misma es posible
5 Espacio libre en disco El espacio libre del volumen de destino. Con poco espacio hay directivas que hacen que OneDrive bloquee las descargas Otra causa de fallo de hidratación
6 Registro del fallo Anotar el código de error de la aplicación y la hora, y cotejarlos con el error que muestra la aplicación de sincronización Si el problema es del lado de la aplicación o de OneDrive

Según el OneDrive que se use (personal o de trabajo), las variables de entorno OneDrive / OneDriveCommercial también sirven de pista. No decida solo por el nombre mostrado «Escritorio»: lo importante es cotejar con la ruta que la aplicación consultó de verdad.

Si no está bajo OneDrive y tampoco es un marcador de posición, no siga sospechando solo de OneDrive: pase a comprobar carpetas compartidas, longitud de ruta y similares. «Trampas de las unidades de red y las rutas UNC» y «MAX_PATH y las trampas de rutas y nombres de archivo en Windows» organizan causas de otra familia.

2.2. Separar la medida provisional de si el negocio puede reanudarse

Si el archivo es solo en línea y no se puede leer el contenido, haga clic derecho en la carpeta de destino y elija «Mantener siempre en este dispositivo». Si lo cambia por script, quite a la vez el atributo de no fijado, como en attrib +p -u <carpeta> /s /d.67

Lo que hay que confirmar aquí no es que se haya hecho la operación, sino que la descarga de los archivos necesarios ha terminado y se pueden leer. El fijado es un atributo que expresa la intención de conservarlos en local; no resuelve por sí solo que OneDrive esté detenido, que la red falle o que falte espacio libre. Vuelva a ejecutar el proceso de importación después de comprobar el estado de la aplicación de sincronización y el contenido de los archivos de destino.36

Tras la recuperación, si la causa es una ruta fija o la ubicación de los datos, pase a las medidas del lado de la aplicación del capítulo 6; si es la conservación del contenido o la variación de la configuración del equipo, a las del lado de informática del capítulo 7. Que haya funcionado una vez con el fijado y que el diseño impida la reaparición son cosas distintas.

3. Qué ha cambiado — el mecanismo de KFM y de los marcadores de posición

3.1. KFM cambia la ruta real del escritorio y similares

KFM (Known Folder Move) es la función que en la pantalla de configuración de OneDrive aparece como «Copia de seguridad», «Hacer copia de seguridad de carpetas importantes» y similares. Al activarla, el contenido de Escritorio, Documentos e Imágenes se traslada bajo OneDrive. Lo que sigue es un ejemplo de rutas. El nombre real de las carpetas y la raíz de sincronización varían según el entorno, así que no incruste esta cadena tal cual en el código.1

Lugar que ve el usuario Ruta real antes de KFM Ruta real después de KFM
Escritorio C:\Users\taro\Desktop C:\Users\taro\OneDrive\Escritorio
Documentos C:\Users\taro\Documents C:\Users\taro\OneDrive\Documentos
Imágenes C:\Users\taro\Pictures C:\Users\taro\OneDrive\Imágenes

En la configuración inicial de un PC nuevo (OOBE), al iniciar sesión con una cuenta Microsoft o de trabajo se propone la copia de seguridad, y hay configuraciones en las que queda activada tal cual. En una organización, la directiva KFMSilentOptIn también puede trasladar las carpetas en bloque sin operación del usuario. No asuma que solo ocurre cuando el usuario la configura a propósito.18

Lo molesto es que el aspecto del Explorador casi no cambia. Una aplicación que usa SHGetKnownFolderPath o Environment.GetFolderPath de .NET puede obtener la ruta posterior al traslado. En cambio, una que incrusta una ruta fija como C:\Users\%USERNAME%\Desktop en un archivo de configuración o en el código sigue buscando el lugar anterior al traslado.

Es decir, responder a KFM es, primero, un problema de resolución de rutas. Cuando se conoce la ruta correcta posterior al traslado, se comprueba si el contenido de ese archivo está en local.

3.2. Archivos bajo demanda separa «verse» de «tener contenido»

En un entorno con Archivos bajo demanda activado, los archivos de sincronización se pueden mostrar en el Explorador sin descargar el contenido hasta que hace falta. Los archivos creados en otros dispositivos o en la web también se ven como marcadores de posición solo en línea.24

El estado se distingue por el icono del Explorador.9

Icono Estado Contenido local
Marca de nube Solo en línea Ninguno (solo marcador de posición)
Marca de verificación sobre fondo blanco Disponible en este dispositivo Presente (pero más adelante puede liberarse de forma automática)
Marca de verificación blanca sobre fondo verde Mantener siempre en este dispositivo (fijado) Presente (fuera de la liberación automática)

Lo importante es que «disponible en este dispositivo» por haberlo abierto una vez y «mantener siempre en este dispositivo» por haberlo fijado no son lo mismo. El primero puede volver a solo en línea por la operación del usuario «Liberar espacio» o por el Sensor de almacenamiento. Que «el mes pasado se pudo leer» no es prueba de que el contenido siga esta vez.210

Los 3 estados de Archivos bajo demanda y las transicionesUn archivo solo en línea pasa a disponible en este dispositivo al abrirlo, pero la operación de liberar espacio o el Sensor de almacenamiento lo devuelven a solo en línea, y solo los archivos fijados quedan fuera de la liberación automáticaAbrir (hidratación)Liberar espacioSensor de almacenamientoMantener siempre en este dispositivoMantener siempre en este dispositivoQuitar el fijadoSolo en línea (marca de nube)Disponible en este dispositivoFijado (mantener siempre en este dispositivo)

Figura 1: Un archivo que solo se descargó una vez, a diferencia de uno fijado, puede ser objeto de liberación automática.

3.3. Al leer, Cloud Files API recupera el contenido

Archivos bajo demanda está implementado sobre Cloud Files API, introducida en Windows 10 versión 1709. En el lado del sistema de archivos actúa un minifiltro llamado cldflt.sys (nombre de servicio CldFlt, Windows Cloud Files Filter Driver), y OneDrive es uno de los proveedores de sincronización que usan esta API.116

Un marcador de posición que aún no tiene contenido es un punto de reanálisis que solo tiene metadatos como el nombre, el tamaño y la marca de tiempo. Según Microsoft, usa unos 1 KB para guardar la cabecera del sistema de archivos. Cuando la aplicación intenta leer el contenido, el minifiltro pide al proveedor de sincronización que transfiera los datos, y la lectura continúa cuando llegan los datos necesarios. A esta recuperación se le llama hidratación, y a liberar el contenido local y volver al marcador de posición, deshidratación.11

Hidratación al abrir un marcador de posiciónCuando la aplicación abre un marcador de posición y lee, el minifiltro cldflt.sys detecta la petición, indica al proveedor de sincronización que transfiera los datos y, tras esperar a que termine la descarga, la lectura continúaProveedor de sincronizaciónMinifiltro cldflt.sysAplicación de negocioProveedor de sincronizaciónMinifiltro cldflt.sysAplicación de negocioAbrir y pedir lecturaIndicar transferencia de datosDescarga completadaLa lectura continúa

Figura 2: En medio de una lectura que parece de un archivo local entra una descarga del proveedor de sincronización.

Por compatibilidad, Cloud Files API oculta que se trata de un punto de reanálisis a todos los procesos excepto al motor de sincronización y a los que están bajo %systemroot%. Por eso, una aplicación ordinaria lo ve como «un archivo normal que tarda un poco más en abrirse». No intente decidirlo solo con código que trata de forma especial los puntos de reanálisis: compruebe los atributos del capítulo siguiente.11 El mecanismo de los puntos de reanálisis en sí se explica en «Las profundidades de la E/S de Windows (parte 5) — Estructura interna de NTFS».

En las propiedades del Explorador, «Tamaño» muestra el tamaño real del archivo, mientras que «Tamaño en disco» queda casi en 0. Tener nombre de archivo y poder obtener el tamaño no es lo mismo que tener el contenido en local.

4. Examinar el estado con los atributos de archivo

4.1. Distinguir el estado del contenido de la intención de conservarlo

El estado de un marcador de posición se publica como atributos de archivo habituales. Los principales son los siguientes.3

Atributo Valor Significado
FILE_ATTRIBUTE_OFFLINE 0x00001000 Los datos no están disponibles de inmediato (atributo tradicional orientado a la gestión de almacenamiento jerárquico)
FILE_ATTRIBUTE_RECALL_ON_OPEN 0x00040000 No hay contenido físico en local. Solo aparece en el resultado de la enumeración de directorios
FILE_ATTRIBUTE_PINNED 0x00080000 El usuario pretende «conservarlo siempre en local» (fijado)
FILE_ATTRIBUTE_UNPINNED 0x00100000 No hace falta conservar el contenido en local (intención de pasarlo a solo en línea)
FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS 0x00400000 Parte o todo el contenido no está en local. Al leerlo se produce una recuperación remota

OFFLINE y RECALL_ON_DATA_ACCESS son pistas para pensar si los datos están disponibles de inmediato. En cambio, PINNED / UNPINNED expresan la intención de conservarlos en local. No decida que la descarga ha terminado solo porque vea P o U. Además, RECALL_ON_OPEN es un atributo que aparece en el resultado de la enumeración de directorios y no se obtiene igual con todas las API de atributos.3

4.2. Al comprobar y cambiar con attrib, preste atención al orden del cambio

Con attrib <ruta> se pueden comprobar los atributos. O es sin conexión, P es fijado y U es no fijado. Microsoft organiza así la correspondencia entre el estado de OneDrive y los comandos de configuración.76

Estado de Archivos bajo demanda Atributo Comando de configuración
Siempre disponible (fijado) Pinned (se muestra P) attrib +p <ruta>
Disponible en este dispositivo Ni P ni U attrib -p <ruta>
Solo en línea Unpinned (se muestra U) attrib +u <ruta>

Aunque ejecute solo attrib -p sobre un archivo solo en línea (U), U permanece y el contenido no se obtiene. Si quiere pasarlo a «disponible en este dispositivo», hace falta el orden de ponerlo primero en «siempre disponible» con +p para que se descargue y, después, -p. En un script que cambia un estado existente, quite también el atributo contrario, como en attrib +p -u.6

4.3. Comprobar en bloque el estado de los CSV con PowerShell

Si solo se miran los atributos del archivo, se puede investigar sin provocar hidratación del contenido. El ejemplo siguiente obtiene la ruta de Documentos con la API de carpetas conocidas y comprueba los atributos de los CSV.

function Test-CloudPlaceholder {
    param([Parameter(Mandatory)][string]$Path)

    $value = [int](Get-Item -LiteralPath $Path -Force).Attributes

    [pscustomobject]@{
        Path               = $Path
        Offline            = ($value -band 0x00001000) -ne 0  # FILE_ATTRIBUTE_OFFLINE
        RecallOnDataAccess = ($value -band 0x00400000) -ne 0  # El contenido no está del todo en local
        Pinned             = ($value -band 0x00080000) -ne 0  # Mantener siempre en este dispositivo
        Unpinned           = ($value -band 0x00100000) -ne 0  # Solo en línea
    }
}

# Comprobación en bloque de los CSV bajo la carpeta Documentos (el contenido no se descarga).
# La ruta se resuelve con la API de carpetas conocidas. Si se escribe tal cual
# el nombre mostrado «Documentos», en un entorno cuyo nombre real es Documents
# o según la configuración de KFM la ruta puede no existir
Get-ChildItem ([Environment]::GetFolderPath('MyDocuments')) -Recurse -Filter *.csv |
    ForEach-Object { Test-CloudPlaceholder $_.FullName } |
    Where-Object RecallOnDataAccess |
    Format-Table -AutoSize

Se convierte a [int] porque la enumeración FileAttributes de .NET no define nombres como RECALL_ON_DATA_ACCESS. Se convierte a número y se decide con operaciones de bits. Importan las dos cosas: no escribir tal cual el nombre mostrado «Documentos» y mirar los atributos sin leer el contenido.

5. Seis problemas que afloran en las aplicaciones de negocio

Un marcador de posición no es un archivo roto. Sin embargo, encaja mal con suposiciones como «un archivo que existe se puede leer de inmediato» o «los eventos de supervisión local vienen de operaciones del usuario».

Síntoma Qué está ocurriendo Qué revisar
Existe pero no se abre Falla la recuperación al leer OneDrive, la red, el tratamiento de errores
El procesamiento por lotes es extremadamente lento Los archivos cuyo contenido se lee se van descargando uno tras otro Lectura de todos, cálculo de hash, copia de seguridad
Solo se excluyen algunos archivos Una comprobación de coincidencia exacta de atributos no prevé atributos añadidos Código de comprobación y cambio de atributos
Llegan eventos de supervisión en masa La sincronización, las actualizaciones de atributos y la reescritura al mismo sitio generan notificaciones FileSystemWatcher y el destino de entrada/salida
Aparecen errores de sincronización o archivos duplicados Un bloqueo exclusivo o la edición en varios PC chocan con la sincronización Tiempo de bloqueo, ubicación de archivos, tratamiento de duplicados
De noche suben el tráfico y el uso de disco Un análisis o la creación de índice recuperan el contenido Producto de seguridad, indizador de búsqueda

5.1. La comprobación de existencia pasa, pero la lectura falla

Aunque el archivo sea solo en línea, una comprobación de existencia equivalente a File.Exists() o la obtención de atributos y tamaño a veces tienen éxito. La hidratación hace falta cuando se empieza a leer el contenido, de modo que la detención, el cierre de sesión o la pausa de OneDrive, o un fallo de red, aparecen como fallo de lectura. En un archivo grande, la espera de la descarga también puede convertirse en un tiempo de espera de la aplicación.

Entre los errores de archivos en la nube está 0x8007016A ( «El proveedor de archivos en la nube no se está ejecutando» ), que corresponde a ERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING. No lo resuma como «no hay archivo»: registre el código de error original y la ruta de destino.5

5.2. Un procesamiento por lotes provoca la descarga de todo

Si un lote que lee todos los archivos de una carpeta, un cálculo de hash, una búsqueda de texto completo o una copia de seguridad propia se apuntan bajo OneDrive, se produce hidratación uno tras otro en cada archivo cuyo contenido se lee. En una carpeta de varios GB aumentan no solo el tiempo de procesamiento, sino el tráfico y el consumo de disco local. En un PC con poco espacio, conduce a otro fallo por falta de capacidad.

Si la aplicación recupera un archivo que el usuario no ha abierto de forma explícita, Windows puede mostrar una notificación y ofrecer al usuario la opción de bloquearlo. Si se bloquea, esa aplicación falla en las descargas posteriores. El lugar para desbloquearlo es «Descarga automática de archivos» en Configuración. Cuando «solo falla en un PC concreto», compruebe también este estado.11

5.3. El código que no prevé atributos añadidos juzga mal

Si se decide por coincidencia exacta, como attributes == FileAttributes.Archive, un archivo al que se han añadido otros atributos se excluye como «no previsto». Hay casos en que una herramienta de copia de seguridad o de sincronización interpreta OFFLINE como «ya copiado a cinta» y lo omite, o al revés recupera incluso archivos innecesarios. También hace falta no romper la combinación de otros atributos al comprobar solo lectura o al cambiar el bit de archivo.

La guía de Microsoft para minifiltros incluye la precaución de no emitir lecturas y escrituras imprudentes a un archivo con RECALL_ON_DATA_ACCESS. Las restricciones orientadas a controladores en modo kernel y la implementación en modo usuario no son idénticas, pero el punto de que tocar el contenido genera un coste de recuperación también hay que tenerlo presente en una aplicación de negocio.12

5.4. FileSystemWatcher también recoge la actividad de sincronización

Si se supervisa bajo OneDrive con FileSystemWatcher, pueden producirse eventos no solo por operaciones del usuario, sino por la sincronización de cambios desde otros dispositivos y por actualizaciones de atributos o de tamaño por hidratación y deshidratación.

Además, si se reescribe el resultado de la importación en la misma carpeta, se forma un bucle de escritura, carga, actualización de atributos y nuevo evento.

Bucle de notificaciones de cambio por supervisión y reescrituraSi la aplicación de supervisión que recibe el evento de cambio reescribe el resultado de la importación en la misma carpeta, la carga y la actualización de atributos de la aplicación de sincronización vuelven a generar eventos y se forma un bucle, una tormenta de notificaciones de cambioEvento de cambioLa aplicación de supervisión importaReescritura en la misma carpetaLa aplicación de sincronización cargaSe actualizan atributos o tamañoSincronización de cambios de otro dispositivo

Figura 3: Si se reescribe el resultado de la importación en el destino supervisado, la actividad de la aplicación de sincronización también puede quedar envuelta y las notificaciones se repiten.

La razón por la que hace falta filtrar eventos y confirmar el contenido se trata en «Guía práctica de FileSystemWatcher». Bajo OneDrive es aún más importante un diseño que no interprete la notificación tal cual como «ha llegado un archivo listo para importar».

5.5. El bloqueo exclusivo y la edición en varios PC chocan con la sincronización

Mientras la aplicación de negocio tiene el archivo abierto con bloqueo exclusivo, la aplicación de sincronización no puede cargarlo ni actualizarlo. En un diseño que mantiene abiertos mucho rato un .accdb de Access, un archivo de datos de formato propio o un registro, colocarlos bajo OneDrive hace que el error de sincronización se vuelva habitual.

Si el mismo archivo se edita en varios PC, a veces se generan copias de conflicto con el nombre del PC o «copia de …» para conservar ambas versiones. Un proceso de importación que asume «una carpeta, un archivo» falla con esta duplicación. Para el diseño de bloqueo, véase también «Conocimientos básicos del control de exclusión en la integración de archivos».

5.6. El análisis y el indizador de búsqueda también recuperan el contenido

No solo la aplicación de negocio lee el contenido. Un análisis completo de un antivirus o el indizador de búsqueda también provocan hidratación si acceden al contenido de un marcador de posición.

La guía de planificación de Azure File Sync explica que Microsoft Defender y similares omiten, en un análisis a petición, los archivos con el atributo RECALL_ON_DATA_ACCESS. Eso es, sin embargo, una adaptación del producto, y no todos los productos de seguridad tienen la misma consideración. Cuando «en cada análisis nocturno la red y el disco se saturan» o «los archivos pasados a solo en línea amanecen todos materializados», investigue también el movimiento del lado del análisis.13

6. Medidas del lado de desarrollo — no abrir a la ligera y separar el destino de almacenamiento

6.1. Comprobar los atributos al enumerar y leer solo los archivos cuyo contenido hace falta

La política básica es tratar el marcador de posición como «un archivo con coste de recuperación». En procesos que no son imprescindibles —recopilación de registros, cálculo de hash, generación de vistas previas— tenga la opción de omitirlos.

El ejemplo siguiente comprueba los atributos y después importa el CSV.

// Los valores no definidos en FileAttributes de .NET se definen numéricamente
const FileAttributes RecallOnDataAccess = (FileAttributes)0x00400000;
const FileAttributes RecallOnOpen       = (FileAttributes)0x00040000;

static bool IsCloudPlaceholder(FileAttributes attributes) =>
    (attributes & (RecallOnDataAccess | RecallOnOpen | FileAttributes.Offline)) != 0;

foreach (var file in new DirectoryInfo(watchFolder).EnumerateFiles("*.csv"))
{
    if (IsCloudPlaceholder(file.Attributes))
    {
        log.Warn($"{file.Name} es solo en línea; se omite en esta pasada");
        continue;
    }
    Import(file.FullName);
}

Este ejemplo sigue la política de no procesar esta vez un archivo que puede ser solo en línea. No dé por procesados, solo con un registro de advertencia, los archivos que el negocio tiene que importar sí o sí. Combine la operación de asegurar el contenido de antemano con el tratamiento cuando falle la lectura.

6.2. No convierta FILE_FLAG_OPEN_NO_RECALL en una «garantía de no comunicar»

FILE_FLAG_OPEN_NO_RECALL de CreateFile es un indicador que expresa la intención de dejar los datos pedidos en el lado remoto y no devolverlos al almacenamiento local. No es un indicador que prohíba la transferencia de datos misma para leer el contenido.14

En una investigación en la que se quieren evitar el ancho de banda y la espera, bástese con metadatos como atributos, tamaño y marca de tiempo. Elija un método que no pida acceso de lectura: usar la información del resultado de la enumeración o, si hace falta, abrir con derecho de acceso 0 y obtener los atributos.14

6.3. Incluir en la especificación la ubicación de los datos y la guía cuando falle

En un entorno KFM, «Documentos» también puede quedar bajo OneDrive. Coloque la configuración, las bases de datos y los archivos de trabajo de la aplicación en un lugar adecuado al uso, como %ProgramData% o %LocalAppData%, y no elija a la ligera el escritorio o documentos como destino predeterminado de guardado o de importación. El criterio concreto está reunido en «Cómo elegir el destino de almacenamiento de datos en una app de Windows».

Aunque el usuario pueda elegir el destino, decida de antemano el comportamiento cuando elija una ruta bajo OneDrive. Incluya en la especificación juicios como advertir con la raíz de sincronización que se ve en las variables OneDrive / OneDriveCommercial, o rechazar la colocación de archivos de bloqueo y de bases de datos.

Cuando falle la lectura, muestre y registre, además de la ruta de destino y el código de error, la información de que está bajo OneDrive si se sabe. Con solo poder indicar «compruebe el estado de OneDrive» al detectar 0x8007016A y similares, el terreno y el servicio de asistencia investigan más fácilmente con el mismo procedimiento.

7. Medidas del lado de informática — mantener el estado con fijado y directivas

7.1. Fijar solo las carpetas necesarias

Antes de desactivar Archivos bajo demanda en conjunto, ponga las carpetas que lee la aplicación de negocio en «Mantener siempre en este dispositivo». Si en el kit de equipos usa attrib +p -u <carpeta> /s /d, entregue el equipo al negocio después de confirmar que la descarga ha terminado.64

«Abrirlo una vez» no impide la liberación automática posterior. El punto es fijar los sitios necesarios por carpeta e incluir ese estado también en el procedimiento de soporte.

7.2. Configurar KFM y Archivos bajo demanda a propósito

Para evitar el «me di cuenta de que estaba activado», controle la configuración con Directiva de grupo o Intune. Hay directivas que prohíben revertir la operación, así que compruebe no solo la pantalla del equipo, sino también la configuración que aplica la organización.81

Objetivo Directiva (valor del Registro) Efecto
Control de Archivos bajo demanda Use OneDrive Files On-Demand (FilesOnDemandEnabled) Activado: los usuarios nuevos quedan solo en línea de forma predeterminada. Desactivado: sincronización completa al estilo anterior
Aplicación masiva de KFM Silently move Windows known folders to OneDrive (KFMSilentOptIn) Traslada el escritorio y similares sin operación del usuario
Prohibición de KFM Prevent users from moving their Windows known folders to OneDrive (KFMBlockOptIn) Prohíbe el traslado de carpetas conocidas
Prohibición de deshacer KFM Prevent users from redirecting their Windows known folders to their PC (KFMBlockOptOut) Prohíbe que el usuario lo deshaga
Reducción de capacidad de sitios de equipo Convert synced team site files to online-only (DehydrateSyncedTeamSites) Pasa a solo en línea los sitios de equipo ya sincronizados (atención: actúa en el sentido de que el contenido desaparece)

DehydrateSyncedTeamSites es una directiva que actúa en el sentido de reducir el contenido de los sitios de equipo ya sincronizados. Si los archivos necesarios vuelven a la marca de nube, compruebe no solo la operación del usuario «Liberar espacio», sino también esta configuración de organización.8

7.3. Comprobar el coste del Sensor de almacenamiento y de la sincronización completa

El Sensor de almacenamiento (Storage Sense) tiene una función que devuelve a solo en línea los archivos en la nube que no se han abierto en un número de días. Se puede configurar el número de días con ConfigStorageSenseCloudContentDehydrationThreshold; el valor predeterminado 0 de esa directiva es no devolverlos de forma automática. Sin embargo, el usuario puede haberlo activado en la pantalla de configuración, o la organización puede haberlo configurado para equipos de poca capacidad.10

El objeto son los archivos «disponibles en este dispositivo» que no están fijados de forma explícita. Los archivos fijados quedan fuera de la liberación automática, así que cuando «hasta la semana pasada se abría y ahora está en marca de nube», compruebe si realmente tenía el atributo P.4

Si se desactiva FilesOnDemandEnabled se vuelve a la sincronización de descarga completa al estilo anterior, pero aumentan el consumo de disco y la carga de ancho de banda de la sincronización inicial. Microsoft recomienda operarlo activado. Trate la desactivación como una medida limitada, después de comprobar el volumen de datos de los usuarios de destino y la capacidad de disco.84

Incorpore en la plantilla de consulta el «ruta → atributos → OneDrive en ejecución → red → espacio libre → registro» del capítulo 2. Así, aunque cambie el responsable, se puede investigar la causa en el mismo orden sin cambiar la configuración a la ligera.

8. Resumen

Un fallo de archivo en un entorno OneDrive se ordena si primero se separa «si el lugar ha cambiado» de «si hace falta recuperar el contenido». A KFM se responde resolviendo la ruta con las API de carpetas conocidas; a Archivos bajo demanda, con un diseño que comprueba los atributos y después lee solo el contenido necesario.

Sobre esa base, revise cómo se superponen con la sincronización procesos como la reescritura en el destino supervisado, un bloqueo exclusivo prolongado o un análisis de todos los archivos. Separe los datos internos de la aplicación de lo que está bajo OneDrive, y mantenga el contenido de los archivos que el negocio necesita con fijado y directivas. Esa división de papeles es la base para no quedarse en la medida provisional.

La próxima vez que reciba una consulta de «el archivo está, pero no se puede leer», vuelva a preguntar primero esto.

¿Está la aplicación mirando ahora la ubicación correcta? Y el contenido de ese archivo, ¿está realmente en local?

Artículos relacionados

Áreas de consultoría relacionadas

KomuraSoft LLC se ocupa de la investigación de fallos de aplicaciones de negocio ligados a OneDrive y al almacenamiento en la nube —«el proceso de importación que funcionaba deja de hacerlo tras cambiar el PC», «el archivo no se puede leer solo en un PC concreto»—, del diseño y la corrección del procesamiento de archivos y de la supervisión pensados para marcadores de posición, y de la revisión del diseño del destino de almacenamiento en un entorno de KFM y Archivos bajo demanda. Puede consultar ya desde el aislamiento del fenómeno.

Referencias

  1. Microsoft Learn, Redirect and move Windows known folders to OneDrive. Que KFM traslada Escritorio, Documentos e Imágenes bajo OneDrive, y las directivas de petición, aplicación silenciosa, prohibición de deshacer y prohibición de traslado. ↩ ↩2 ↩3 ↩4 ↩5

  2. Microsoft Support, Save disk space with OneDrive Files On-Demand for Windows. Los 3 estados de Archivos bajo demanda y las operaciones «Mantener siempre en este dispositivo» y «Liberar espacio». ↩ ↩2 ↩3

  3. Microsoft Learn, File Attribute Constants. Definición y valor de los atributos FILE_ATTRIBUTE_OFFLINE, RECALL_ON_OPEN, RECALL_ON_DATA_ACCESS, PINNED y UNPINNED. ↩ ↩2 ↩3 ↩4

  4. Microsoft Learn, Recommended sync app configuration. Que Archivos bajo demanda está activado de forma predeterminada y se recomienda dejarlo activado, y que el Sensor de almacenamiento limpia los «archivos disponibles en este dispositivo que no están fijados». ↩ ↩2 ↩3 ↩4 ↩5

  5. Microsoft Learn, Error 0x8007016a when copying files in OneDrive. Que el error 0x8007016A «The cloud file provider is not running» ocurre cuando OneDrive está mal configurado o detenido, y el procedimiento para resolverlo. ↩ ↩2

  6. Microsoft Learn, Query and set Files On-Demand states in Windows. La comprobación del estado de Archivos bajo demanda con attrib, la configuración con +p, -p y +u, y el servicio CldFlt. ↩ ↩2 ↩3 ↩4 ↩5 ↩6

  7. Microsoft Learn, attrib. La sintaxis del comando attrib y los indicadores de atributo, incluidos O (sin conexión), P (fijado) y U (no fijado). ↩ ↩2

  8. Microsoft Learn, IT Admins - Use OneDrive policies to control sync settings. Las directivas con las que se configura la aplicación de sincronización de OneDrive por GPO/Intune, como FilesOnDemandEnabled, KFMSilentOptIn, KFMBlockOptIn, KFMBlockOptOut y DehydrateSyncedTeamSites. ↩ ↩2 ↩3 ↩4

  9. Microsoft Support, What do the OneDrive icons mean?. El significado de los iconos de estado —nube, marca de verificación, etc.— que se muestran en el Explorador. ↩

  10. Microsoft Learn, Policy CSP - Storage. Que el Sensor de almacenamiento puede pasar a solo en línea los archivos en la nube que no se han abierto en un número de días, el valor predeterminado 0 (no devolverlos de forma automática) y la configuración de 0 a 365 días. ↩ ↩2

  11. Microsoft Learn, Build a Cloud Sync Engine that Supports Placeholder Files. Panorama de Cloud Files API, que un marcador de posición solo tiene unos 1 KB de metadatos y se hidrata de forma automática al abrirlo, que el punto de reanálisis se oculta a los procesos distintos del motor de sincronización y de los que están bajo %systemroot%, y las notificaciones tipo toast y el bloqueo ante una hidratación en segundo plano. ↩ ↩2 ↩3 ↩4

  12. Microsoft Learn, Handling placeholders. Que a un marcador de posición debe asignarse FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS, y que una lectura o escritura imprudente a un archivo con este atributo provoca hidratación innecesaria o corrupción de datos. ↩

  13. Microsoft Learn, Plan for an Azure File Sync deployment. Que el análisis antivirus puede provocar el recall de archivos con el atributo RECALL_ON_DATA_ACCESS, y que Microsoft Defender y similares omiten esos archivos en un análisis a petición. ↩

  14. Microsoft Learn, CreateFileW function (fileapi.h). Que FILE_FLAG_OPEN_NO_RECALL es un indicador que expresa que «los datos pedidos no deben trasladarse de vuelta al almacenamiento local y deben dejarse en el lado remoto» (no impide la obtención de los datos en sí), y la obtención de atributos abriendo con derecho de acceso 0. ↩ ↩2

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.

La aplicación de negocio dice «No se encuentra el archivo» y no puede leer un CSV que puse en el escritorio. ¿Por qué?
En muchos casos la propia carpeta Escritorio se ha trasladado a C:\Users\<usuario>\OneDrive\Escritorio mediante el Traslado de carpetas conocidas (KFM) de OneDrive, o el archivo se ha convertido en un marcador de posición solo en línea. Si la aplicación asume una ruta fija como C:\Users\<usuario>\Desktop, no encuentra el archivo después del traslado. Aunque la ruta sea correcta, un archivo solo en línea puede no abrirse cuando OneDrive está detenido o la red falla. Primero compruebe si la ruta de destino está bajo OneDrive y, con el comando attrib, si tiene U (solo en línea). Como medida provisional, «Mantener siempre en este dispositivo» en el menú contextual asegura el contenido en local.
¿Se puede determinar por programa si un archivo es solo en línea?
Sí. Un marcador de posición solo en línea lleva atributos como FILE_ATTRIBUTE_OFFLINE y FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS (0x00400000), de modo que examinar los atributos permite determinar el estado sin descargar el contenido. Obtener los atributos o enumerar una carpeta no provoca hidratación (descarga). En .NET algunos de estos valores no están definidos en FileAttributes, así que hay que convertirlos a entero y evaluarlos con operaciones de bits. Si de todos modos necesita abrir el archivo sin leer su contenido, existen mecanismos como FILE_FLAG_OPEN_NO_RECALL en CreateFile.
¿Desactivar Archivos bajo demanda resuelve el problema?
Trate la desactivación como último recurso. Al desactivarla, todos los archivos sincronizados se descargan en local, lo que aumenta el consumo de disco y la carga de red de la sincronización inicial; Microsoft también recomienda mantenerla activada. En la práctica es más flexible marcar como «Mantener siempre en este dispositivo» (fijar) únicamente las carpetas que lee la aplicación de negocio. De forma más fundamental, lo fiable es rediseñar para que la carpeta de datos o de importación de la aplicación no quede bajo la gestión de OneDrive.
Marqué «Mantener siempre en este dispositivo», pero hay archivos que acaban volviendo al icono de nube. ¿Por qué?
Primero confirme con el comando attrib que el archivo realmente está fijado (atributo P). Los archivos fijados quedan fuera de la conversión automática a solo en línea del Sensor de almacenamiento, pero un archivo «disponible en este dispositivo» que solo se abrió sin fijarlo puede volver a solo en línea tras un período, según la configuración o la directiva del Sensor de almacenamiento. Además, la operación del propio usuario de «Liberar espacio» o la directiva que convierte los sitios de equipo en solo en línea (DehydrateSyncedTeamSites) también hacen que el icono vuelva a la nube. Las carpetas que el negocio necesita imprescindiblemente en local, fíjelas por carpeta completa y opérelas así.

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