> ## 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.

# Vue d'ensemble de l'API XGameSaveFiles

> Référence de XBOX XGameSaveFiles couvrant XGameSaveFilesGetFolderWithUIAsync, le comportement de synchronisation infonuagique Win32, les quotas, le débogage et les pratiques exemplaires en matière de performances.

Cet article explique comment initialiser `XGameSaveFilesGetFolderWithUIAsync`. Il décrit également le comportement recommandé de synchronisation infonuagique automatique Win32, les étapes de débogage, les directives sur les quotas et les diagnostics, les pratiques exemplaires en matière de performances et les réponses aux questions courantes.

`XGameSaveFiles` fournit des API qui permettent à votre titre de lire et d'écrire des données utilisateur, de les conserver d'une session à l'autre et de les synchroniser en toute transparence avec le nuage afin que les joueurs puissent utiliser leurs données sur n'importe quel appareil. Utilisez `XGameSaveFiles` pour les sauvegardes de jeu dans les titres du Microsoft Game Development Kit (GDK). Utilisez `XGameSave` uniquement lorsque `XGameSaveFiles` n'est pas disponible pour votre scénario.

Pour la référence de l'API système de `XGameSaveFiles`, consultez [XGameSaveFiles (contenu de l'API)](/fr-CA/reference/system/xgamesavefiles/xgamesavefiles_members).

Les termes suivants reviennent souvent dans `XGameSaveFiles`.

* **Verrou :** Mécanisme qui accorde un accès exclusif aux Game Saves d'un titre pour un utilisateur donné sur l'appareil qu'il utilise activement. Il garantit qu'aucun autre appareil ne peut modifier les sauvegardes de l'utilisateur pendant que le verrou est détenu.
  * Par exemple, si un utilisateur joue au titre T sur l'appareil A, celui-ci détient un verrou sur le titre T pour cet utilisateur.
* **Fournisseur :** Processus intermédiaire qui communique avec le système Game Save et qui est responsable de la gestion des données du titre. Le fournisseur gère également le verrou d'un utilisateur sur un appareil.
* **Conteneurs** : Équivalents des dossiers.
* **Blobs** : Équivalents des fichiers individuels.

## Logique des chemins XGameSaveFiles

`XGameSaveFiles` fournit un chemin de fichier que vous pouvez utiliser pour interagir avec le système Game Saves. Le chemin de fichier est intégré à la synchronisation infonuagique, de sorte que les données sauvegardées dans ce chemin se synchronisent automatiquement avec le nuage. Utilisez les API Win32 `FileIO` sur le chemin fourni. Pour les titres GDK, utilisez `XGameSaveFiles` comme approche de Game Saves. `XGameSaveFiles` mappe les conteneurs à des dossiers et les blobs à des fichiers.

Bien que `XGameSaveFiles` masque la majeure partie de la complexité du système de sauvegarde infonuagique, il impose tout de même des limites sur les répertoires et les noms de fichiers, car la fonctionnalité repose sur Microsoft Azure Blob Storage. Prenez l'exemple de code suivant de ce qu'un titre pourrait utiliser pour sa sauvegarde.

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

* `XGameSaveFilesGetFolderWithUiAsync` retourne la \[ROOT].
* Tout ce qui suit \[ROOT], jusqu'à la dernière barre oblique inclusivement, correspond à un conteneur.
  * Les noms de conteneur sont limités aux lettres majuscules (A-Z), aux lettres minuscules (a-z), aux chiffres (0-9), aux traits de soulignement (\_), aux points (.), aux traits d'union (-) et aux barres obliques (/).
  * Les noms de conteneur sont limités à 256 caractères.
  * Les noms de conteneur ne peuvent pas se terminer par un point, contenir deux points consécutifs, ni commencer par un point ou un trait d'union.
* Tout ce qui suit la dernière barre oblique dans le nom de fichier correspond à un blob.
* Les noms de fichiers sont limités à 65 caractères, mais peuvent autrement contenir tout caractère Unicode pris en charge par le système de fichiers NTFS (New Technology File System).
* Le chemin complet obtenu, y compris le nom de fichier (mais pas la \[ROOT]), doit être inférieur à `MAX_PATH` (260 caractères).

Pour en savoir plus sur Win32 et la gestion des fichiers, consultez [Gestion des fichiers (systèmes de fichiers locaux)](https://learn.microsoft.com/windows/win32/fileio/file-management).

## Implémentation de XGameSaveFiles

Les étapes suivantes présentent l'implémentation générale de `XGameSaveFiles`.

1. Au lancement ou à la reprise du titre, appelez `XGameSaveFilesGetFolderWithUIAsync` pour initialiser le fournisseur et obtenir le chemin de fichier.
2. Lisez et écrivez librement dans le chemin de fichier pendant le jeu.

`XGameSaveFilesGetFolderWithUIAsync` gère automatiquement la durée de vie du fournisseur Game Saves et configure l'espace de stockage local de Game Saves.

<Info>Appelez `XGameSaveFilesGetFolderWithUIAsync` au démarrage du titre et lors de sa reprise. Cet appel initialise le fournisseur Game Saves et le garde actif pendant l'exécution de la session de jeu. Si vous omettez cette étape, le système peut se comporter de façon imprévisible.</Info>

### Exemple de code

Pour un exemple de code qui montre comment utiliser les API `XGameSaveFiles` pour accéder à des dossiers sur XBOX, consultez [GameSaveFilesCombo](https://learn.microsoft.com/samples/microsoft/xbox-gdk-samples/gamesavefilescombo/).

## Flux de Game Saves

Voici un organigramme du flux simplifié 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="Organigramme du processus de synchronisation simplifié de Game Saves." width="530" height="572" data-path="images/gdk/features/common/simple-sync-overview.png" />

### Démarrage du titre

Le démarrage du titre a lieu lorsque l'utilisateur lance ou reprend le titre.

### Connexion de l'utilisateur

Le titre amorce le processus de connexion de l'utilisateur. C'est également à ce moment que vous appelez `XGameSaveFilesGetFolderWithUIAsync`. Pour en savoir plus sur la configuration des utilisateurs, consultez [Modèles d'utilisateur](/fr-CA/build/core-features/common/game-save/game-saves-developer-guide#user-models).

### Vérification de la connexion

Le titre détermine s'il peut se connecter au réseau XBOX. S'il ne le peut pas, vous devez activer le [mode hors ligne](/fr-CA/build/core-features/common/game-save/game-saves-syncing#connection-check) pour le titre.

### Vérification de la propriété des données

L'appareil vérifie si l'utilisateur joue actuellement sur d'autres appareils. Un seul appareil à la fois peut accéder aux données de l'utilisateur pour un titre donné.

### Synchroniser les données avec le nuage

L'appareil synchronise les données du stockage local de Game Saves avec le nuage. En cas de conflit, le système affiche à l'utilisateur une boîte de dialogue de résolution de conflit.

Boîte de dialogue : [Laquelle voulez-vous utiliser?](/fr-CA/build/core-features/common/game-save/game-saves-dialogues#which-one-do-you-want-to-use)

Si les données de l'appareil sont plus récentes que celles du nuage, le titre invite l'utilisateur à choisir entre les données locales et les données du nuage.

### Boucle de jeu

Le titre peut librement lire et écrire dans le chemin de dossier fourni par `XGameSaveFilesGetFolderWithUIAsync`.

### Fin de la session de jeu

Lorsque la session de jeu prend fin, le système tente automatiquement de téléverser les données dans le nuage. Ce processus a lieu environ 10 à 30 secondes après la fin du titre.

Pour des renseignements détaillés sur la synchronisation, consultez [Comprendre le flux de synchronisation de Game Saves](/fr-CA/build/core-features/common/game-save/game-saves-syncing).

## Limites et quotas

### Limites

La taille de fichier maximale que vous pouvez sauvegarder au moyen de `XGameSaveFiles` est de 64 Mo. Ce comportement diffère de celui de `XGameSave`, qui limite chaque fichier à 16 Mo.

### Quotas

La quantité maximale de données qu'un utilisateur peut sauvegarder par titre est de 256 Mo. Utilisez [XGameSaveFilesGetRemainingQuota](/fr-CA/reference/system/xgamesavefiles/functions/xgamesavefilesgetremainingquota) pour obtenir le quota restant. Pour obtenir une extension de stockage afin que votre titre dispose d'une limite de stockage par utilisateur plus élevée, communiquez avec votre gestionnaire de programme développeur (DPM).

## FAQ

### Puis-je utiliser XGameSaveFiles avec XGameSave?

Oui. Toutefois, utilisez cette approche uniquement pour des migrations. Pour des renseignements détaillés, consultez [Interopérabilité entre XGameSave et XGameSaveFiles](/fr-CA/build/core-features/common/game-save/game-saves-walkthroughs-and-samples#interop-between-xgamesave-and-xgamesavefiles).

### Dans quel chemin de fichier XGameSaveFiles sauvegarde-t-il?

**Console** : Le titre fournit un chemin temporaire pendant qu'il est actif. Vous ne pouvez pas accéder aux fichiers de la console au moyen de l'Explorateur de fichiers.

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

Le chemin PC de `XGameSaveFiles` est différent de celui de `XGameSave`. Ce dernier utilise `wgs`.

### Puis-je indiquer le chemin où les données doivent être sauvegardées?

Oui, mais uniquement sur PC. Nous recommandons cette approche seulement si vous portez votre solution à partir d'un autre titre. Cette solution utilise les [sauvegardes infonuagiques sans code](/fr-CA/build/core-features/common/game-save/game-saves-walkthroughs-and-samples#porting-previous-titles-to-pc-game-saves-with-no-code-cloud-saves).

## Documentation de référence de l'API

* [XGameSaveFiles (contenu de l'API)](/fr-CA/reference/system/xgamesavefiles/xgamesavefiles_members)
  * Fonctions
    * [XGameSaveFilesGetRemainingQuota](/fr-CA/reference/system/xgamesavefiles/functions/xgamesavefilesgetremainingquota)

## Voir aussi

[Table des matières de Game Saves](/fr-CA/build/core-features/common/game-save/game-saves-toc)
Oui, mais uniquement sur PC. Le portage de votre solution à partir d'un autre titre pourrait nécessiter cette approche. Cette solution utilise les [sauvegardes infonuagiques sans code](/fr-CA/build/core-features/common/game-save/game-saves-walkthroughs-and-samples#porting-previous-titles-to-pc-game-saves-with-no-code-cloud-saves).

<Note>Les sauvegardes infonuagiques sans code exigent que le titre soit lancé en tant que build empaqueté au moyen de `wdapp install`. Lancer directement le fichier .exe n'active pas la redirection des sauvegardes infonuagiques. Alterner entre des lancements empaquetés et des lancements directs du .exe peut donner l'impression que des données de sauvegarde sont manquantes. Pour en savoir plus, consultez [Porter des titres antérieurs vers Game Saves sur PC avec les sauvegardes infonuagiques sans code](/fr-CA/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

- [Vue d'ensemble de l'API C Services - PFLocalization.h](/fr/services/playfab/api-references/c/pflocalization/pflocalization_members.md)
- [Vue d'ensemble de l'API C Services - PFLeaderboards.h](/fr/services/playfab/api-references/c/pfleaderboards/pfleaderboards_members.md)
- [Vue d'ensemble de l'API C Services - PFStatistics.h](/fr-CA/services/playfab/api-references/c/pfstatistics/pfstatistics_members.md)
- [Vue d'ensemble de l'API C Services - PFPlatformSpecific.h](/fr-CA/services/playfab/api-references/c/pfplatformspecific/pfplatformspecific_members.md)
- [Vue d'ensemble de l'API C Services - PFPushNotifications.h](/fr/services/playfab/api-references/c/pfpushnotifications/pfpushnotifications_members.md)
