> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Información general de la API XGameSaveFiles

> Referencia de XGameSaveFiles de XBOX que cubre XGameSaveFilesGetFolderWithUIAsync, el comportamiento de sincronización con la nube de Win32, las cuotas, la depuración y los procedimientos recomendados de rendimiento.

Este artículo explica cómo inicializar `XGameSaveFilesGetFolderWithUIAsync`. También describe el comportamiento recomendado de sincronización automática con la nube de Win32, los pasos de depuración, las orientaciones sobre cuotas y diagnóstico, los procedimientos recomendados de rendimiento y las respuestas a preguntas comunes.

`XGameSaveFiles` proporciona API que permiten a su título leer y escribir datos de usuario, conservarlos entre sesiones y sincronizarlos sin problemas con la nube para que los jugadores puedan usar sus datos en cualquier dispositivo. Use `XGameSaveFiles` para los guardados de partidas en títulos de Microsoft Game Development Kit (GDK). Use `XGameSave` solo cuando `XGameSaveFiles` no esté disponible para su escenario.

Para consultar la referencia de la API del sistema de `XGameSaveFiles`, vea [XGameSaveFiles (contenido de la API)](/reference/system/xgamesavefiles/xgamesavefiles_members).

Los siguientes términos aparecen con frecuencia en `XGameSaveFiles`.

* **Bloqueo (lock):** mecanismo que concede acceso exclusivo a los Game Saves de un título para un usuario específico en el dispositivo que está usando activamente. Garantiza que ningún otro dispositivo pueda modificar los guardados de partidas del usuario mientras se mantiene el bloqueo.
  * Por ejemplo, si un usuario juega al Título T en el dispositivo A, este tiene un bloqueo del Título T para ese usuario.
* **Proveedor:** proceso intermediario que se comunica con el sistema de Game Save y es responsable de administrar los datos del título. El proveedor también administra el bloqueo de un usuario en un dispositivo.
* **Contenedores**: análogos a carpetas.
* **Blobs**: análogos a archivos individuales.

## Lógica de rutas de XGameSaveFiles

`XGameSaveFiles` proporciona una ruta de archivo que puede usar para interactuar con el sistema de Game Saves. La ruta de archivo se integra con la sincronización en la nube, de modo que los datos guardados en la ruta se sincronizan automáticamente con la nube. Use las API de `FileIO` de Win32 en la ruta proporcionada. Para títulos de GDK, use `XGameSaveFiles` como enfoque de Game Saves. `XGameSaveFiles` asigna los conceptos de contenedores a carpetas y de blobs a archivos.

Aunque `XGameSaveFiles` oculta la mayor parte de la complejidad del sistema de guardado en la nube, sigue aplicando límites de nombres de directorios y archivos porque la característica se basa en Microsoft Azure Blob Storage. Considere el siguiente código de ejemplo de lo que un título podría usar para su guardado.

```
[ROOT]/Save1/WingtipToys/state001.dat
```

* `XGameSaveFilesGetFolderWithUiAsync` devuelve el \[ROOT].
* Todo lo que sigue a \[ROOT], hasta la última barra diagonal inclusive, se asigna a un contenedor.
  * Los nombres de contenedor se limitan a letras mayúsculas (A-Z), letras minúsculas (a-z), números (0-9), guiones bajos (\_), puntos (.), guiones (-) y barras diagonales (/).
  * Los nombres de contenedor se limitan a 256 caracteres.
  * Los nombres de contenedor no pueden terminar en un punto, contener dos puntos consecutivos ni comenzar con un punto o un guión.
* Todo lo que sigue a la última barra diagonal en el nombre de archivo se asigna a un blob.
* Los nombres de archivo se limitan a 65 caracteres, pero por lo demás pueden ser caracteres Unicode compatibles con el sistema de archivos New Technology File System (NTFS).
* La ruta completa resultante, incluido el nombre de archivo (pero no el \[ROOT]), debe ser inferior a `MAX_PATH` (260 caracteres).

Para obtener más información sobre Win32 y la administración de archivos, consulte [File Management (Local File Systems)](https://learn.microsoft.com/windows/win32/fileio/file-management).

## Implementación de XGameSaveFiles

Los pasos siguientes muestran la implementación general de `XGameSaveFiles`.

1. Al iniciar o reanudar el título, llame a `XGameSaveFilesGetFolderWithUIAsync` para inicializar el proveedor y obtener la ruta de archivo.
2. Lea y escriba libremente en la ruta de archivo durante el juego.

`XGameSaveFilesGetFolderWithUIAsync` administra automáticamente la duración del proveedor de Game Saves y configura el espacio de almacenamiento local de Game Saves.

<Info>Llame a `XGameSaveFilesGetFolderWithUIAsync` cuando el título se inicie y cuando se reanude. Esta llamada inicializa el proveedor de Game Saves y lo mantiene activo mientras se ejecuta la sesión de juego. Si omite este paso, el sistema puede comportarse de forma impredecible.</Info>

### Ejemplo de código

Para ver un ejemplo de código que muestra cómo usar las API de `XGameSaveFiles` para acceder a carpetas en XBOX, consulte [GameSaveFilesCombo](https://learn.microsoft.com/samples/microsoft/xbox-gdk-samples/gamesavefilescombo/).

## Flujo de Game Saves

Este es un diagrama de flujo del flujo simplificado de Game Saves.

<img src="https://mintcdn.com/microsoft-4404708b/UZTRJSf0emX1fheE/images/gdk/features/common/simple-sync-overview.png?fit=max&auto=format&n=UZTRJSf0emX1fheE&q=85&s=98c2d4bdfc034fdd8340c67e10c4d5e7" alt="Diagrama de flujo del proceso de sincronización simplificado de Game Saves." width="530" height="572" data-path="images/gdk/features/common/simple-sync-overview.png" />

### Inicio del título

El inicio del título se produce cuando el usuario inicia o reanuda el título.

### Inicio de sesión del usuario

El título comienza el proceso de inicio de sesión del usuario. Esta operación también es donde se llama a `XGameSaveFilesGetFolderWithUIAsync`. Para obtener más información sobre la configuración de usuarios, consulte [Modelos de usuario](/build/core-features/common/game-save/game-saves-developer-guide#user-models).

### Comprobación de conexión

El título determina si puede conectarse a la red de XBOX. Si no puede, deberá habilitar el [modo sin conexión](/build/core-features/common/game-save/game-saves-syncing#connection-check) para el título.

### Comprobación de propiedad de los datos

El dispositivo comprueba si el usuario está jugando actualmente en otros dispositivos. Solo un dispositivo a la vez puede acceder a los datos del usuario para un título específico.

### Sincronización de datos con la nube

El dispositivo sincroniza los datos del almacenamiento local de Game Saves con la nube. Si hay un conflicto, el sistema pide al usuario que lo resuelva con un diálogo de resolución de conflictos.

Diálogo: [¿Cuál desea usar?](/build/core-features/common/game-save/game-saves-dialogues#which-one-do-you-want-to-use)

Si los datos del dispositivo son más recientes que los datos de la nube, el título pide al usuario que elija entre usar los datos locales o los datos de la nube.

### Bucle de juego

El título puede leer y escribir libremente en la ruta de carpeta proporcionada por `XGameSaveFilesGetFolderWithUIAsync`.

### Fin de la sesión de juego

Cuando la sesión de juego finaliza, el sistema intenta cargar automáticamente los datos en la nube. Este proceso se produce entre 10 y 30 segundos después de que el título finalice.

Para obtener información detallada sobre la sincronización, consulte [Descripción del flujo de sincronización de Game Saves](/build/core-features/common/game-save/game-saves-syncing).

## Límites y cuotas

### Límites

El tamaño máximo de archivo que puede guardar mediante `XGameSaveFiles` es de 64 MB. Este comportamiento difiere de `XGameSave`, que limita cada archivo a 16 MB.

### Cuotas

La cantidad máxima de datos que un usuario puede guardar por título es de 256 MB. Use [XGameSaveFilesGetRemainingQuota](/reference/system/xgamesavefiles/functions/xgamesavefilesgetremainingquota) para obtener la cuota restante. Para obtener una extensión de almacenamiento de modo que su título tenga un límite de almacenamiento por usuario mayor, póngase en contacto con su Developer Program Manager (DPM).

## Preguntas frecuentes

### ¿Puedo usar XGameSaveFiles con XGameSave?

Sí. Sin embargo, use este enfoque solo para migraciones. Para obtener información detallada, consulte [Interoperabilidad entre XGameSave y XGameSaveFiles](/build/core-features/common/game-save/game-saves-walkthroughs-and-samples#interop-between-xgamesave-and-xgamesavefiles).

### ¿En qué ruta de archivo guarda XGameSaveFiles?

**Consola**: el título proporciona una ruta temporal mientras está activo. No se puede acceder a los archivos de la consola mediante el Explorador de archivos.

**PC**: `%AppData%\Local\Packages\<PACKAGE_NAME>\SystemAppData\xgs\<HexXuid>_<SCID>\`

La ruta de PC de `XGameSaveFiles` es diferente de la de `XGameSave`. Esta usa `wgs`.

### ¿Puedo especificar la ruta donde se deben guardar los datos?

Sí, pero solo para PC. Recomendamos este enfoque solo si está portando su solución desde otro título. Esta solución usa [guardados en la nube sin código](/build/core-features/common/game-save/game-saves-walkthroughs-and-samples#porting-previous-titles-to-pc-game-saves-with-no-code-cloud-saves).

## Documentación de referencia de la API

* [XGameSaveFiles (contenido de la API)](/reference/system/xgamesavefiles/xgamesavefiles_members)
  * Funciones
    * [XGameSaveFilesGetRemainingQuota](/reference/system/xgamesavefiles/functions/xgamesavefilesgetremainingquota)

## Consulte también

[Tabla de contenido de Game Saves](/build/core-features/common/game-save/game-saves-toc)
Sí, pero solo para PC. Portar su solución desde otro título podría requerir este enfoque. Esta solución usa [guardados en la nube sin código](/build/core-features/common/game-save/game-saves-walkthroughs-and-samples#porting-previous-titles-to-pc-game-saves-with-no-code-cloud-saves).

<Note>Los guardados en la nube sin código requieren que el título se inicie como una compilación empaquetada mediante `wdapp install`. Iniciar el .exe directamente no activa la redirección del guardado en la nube. Alternar entre inicios empaquetados y directos del .exe puede hacer que los datos guardados parezcan perdidos. Para obtener más información, consulte [Portar títulos anteriores a Game Saves de PC con guardados en la nube sin código](/build/core-features/common/game-save/game-saves-walkthroughs-and-samples#porting-previous-titles-to-pc-game-saves-with-no-code-cloud-saves).</Note>


## Related topics

- [Información general de Game Saves](/es/build/core-features/common/game-save/game-saves-overview.md)
- [XGameSaveFilesGetRemainingQuota](/es/reference/system/xgamesavefiles/functions/xgamesavefilesgetremainingquota.md)
- [Información general de la API XGameSave](/es/build/core-features/common/game-save/xgamesave.md)
- [XGameSaveFiles](/es/reference/system/xgamesavefiles/xgamesavefiles_members.md)
- [XGameSaveFilesGetFolderWithUiAsync](/es/reference/system/xgamesavefiles/functions/xgamesavefilesgetfolderwithuiasync.md)
