Partager via


Utiliser des fichiers

Cette rubrique décrit ce que vous devez savoir pour commencer à lire et écrire dans des fichiers dans une application de plateforme Windows universelle (UWP). Les API et types principaux sont introduits, et des liens sont fournis pour vous aider à en savoir plus.

Ce n’est pas un didacticiel. Si vous souhaitez un didacticiel, consultez Créer, écrire et lire un fichier qui, en plus de montrer comment créer, lire et écrire un fichier, montre comment utiliser des mémoires tampons et des flux. Vous pouvez également vous intéresser à l’exemple d’accès aux fichiers qui montre comment créer, lire, écrire, copier et supprimer un fichier, ainsi que comment récupérer des propriétés de fichier et mémoriser un fichier ou un dossier afin que votre application puisse y accéder facilement.

Nous allons examiner le code pour écrire et lire du texte à partir d’un fichier et comment accéder aux dossiers locaux, itinérants et temporaires de l’application.

Que devez-vous savoir ?

Voici les principaux types que vous devez savoir sur la lecture ou l’écriture de texte à partir d’un fichier :

  • Windows.Storage.StorageFile représente un fichier. Cette classe possède des propriétés qui fournissent des informations sur le fichier et les méthodes permettant de créer, d’ouvrir, de copier, de supprimer et de renommer des fichiers. Vous êtes peut-être habitué à traiter les chemins de chaînes de caractères. Il existe certaines API Windows Runtime qui prennent un chemin d’accès de chaîne, mais plus souvent, vous utiliserez un StorageFile pour représenter un fichier, car certains fichiers que vous utilisez dans UWP peuvent ne pas avoir de chemin d’accès, ou avoir un chemin d’accès non complexe. Utilisez StorageFile.GetFileFromPathAsync() pour convertir un chemin de chaîne en un StorageFile.

  • La classe FileIO offre un moyen simple de lire et d’écrire du texte. Cette classe peut également lire/écrire un tableau d’octets ou le contenu d’une mémoire tampon. Cette classe est très similaire à la classe PathIO . La principale différence est qu'au lieu de prendre un chemin sous forme de chaîne de caractères, comme le fait PathIO, il prend un StorageFile.

  • Windows.Storage.StorageFolder représente un dossier (répertoire). Cette classe a des méthodes pour créer des fichiers, interroger le contenu d’un dossier, créer, renommer et supprimer des dossiers et des propriétés qui fournissent des informations sur un dossier.

Les méthodes courantes pour obtenir un StorageFolder sont les suivantes :

Écrire du texte dans un fichier

Pour cette introduction, nous allons nous concentrer sur un scénario simple : lecture et écriture de texte. Commençons par examiner du code qui utilise la classe FileIO pour écrire du texte dans un fichier.

Windows.Storage.StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
Windows.Storage.StorageFile file = await storageFolder.CreateFileAsync("test.txt",
        Windows.Storage.CreationCollisionOption.OpenIfExists);

await Windows.Storage.FileIO.WriteTextAsync(file, "Example of writing a string\r\n");

// Append a list of strings, one per line, to the file
var listOfStrings = new List<string> { "line1", "line2", "line3" };
await Windows.Storage.FileIO.AppendLinesAsync(file, listOfStrings); // each entry in the list is written to the file on its own line.

Nous allons d’abord identifier l’emplacement du fichier. Windows.Storage.ApplicationData.Current.LocalFolder fournit l’accès au dossier de données local, qui est créé pour votre application lorsqu’elle est installée. Consultez Accéder au système de fichiers pour plus d’informations sur les dossiers auxquels votre application peut accéder.

Ensuite, nous utilisons StorageFolder pour créer le fichier (ou l’ouvrir s’il existe déjà).

La classe FileIO offre un moyen pratique d’écrire du texte dans le fichier. FileIO.WriteTextAsync() remplace l’intégralité du contenu du fichier par le texte fourni. FileIO.AppendLinesAsync() ajoute une collection de chaînes au fichier, écrivant une chaîne par ligne.

Lire du texte à partir d’un fichier

Comme pour l’écriture d’un fichier, la lecture d’un fichier commence par spécifier l’emplacement du fichier. Nous allons utiliser le même emplacement que dans l’exemple ci-dessus. Ensuite, nous allons utiliser la classe FileIO pour lire son contenu.

Windows.Storage.StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
Windows.Storage.StorageFile file = await storageFolder.GetFileAsync("test.txt");

string text = await Windows.Storage.FileIO.ReadTextAsync(file);

Vous pouvez également lire chaque ligne du fichier sous forme de chaînes individuelles dans une collection avec IList<string> contents = await Windows.Storage.FileIO.ReadLinesAsync(sampleFile);

Accéder au système de fichiers

Dans la plateforme UWP, l’accès aux dossiers est limité pour garantir l’intégrité et la confidentialité des données de l’utilisateur.

Dossiers d'applis

Lorsqu’une application UWP est installée, plusieurs dossiers sont créés sous c :\users<user name>\AppData\Local\Local\Packages<app package identifier>\ pour stocker, entre autres, les fichiers locaux, itinérants et temporaires de l’application. L’application n’a pas besoin de déclarer de fonctionnalités pour accéder à ces dossiers, et ces dossiers ne sont pas accessibles par d’autres applications. Ces dossiers sont également supprimés lorsque l’application est désinstallée.

Voici quelques-uns des dossiers d’application que vous utiliserez couramment :

  • LocalState : Pour les données locales sur l’appareil actuel. Lorsque l’appareil est sauvegardé, les données de ce répertoire sont enregistrées dans une image de sauvegarde dans OneDrive. Si l’utilisateur réinitialise ou remplace l’appareil, les données sont restaurées. Accédez à ce dossier avec Windows.Storage.ApplicationData.Current.LocalFolder.. Enregistrez les données locales que vous ne souhaitez pas sauvegarder sur OneDrive dans le LocalCacheFolder, auquel vous pouvez accéder avec Windows.Storage.ApplicationData.Current.LocalCacheFolder.

  • RoamingState : Les données stockées ici ne sont plus itinérantes (à partir de Windows 11), mais le dossier est toujours disponible. Accédez au dossier itinérant avec Windows.Storage.ApplicationData.Current.RoamingFolder. Le remplacement recommandé est Azure App Service. Azure App Service est largement pris en charge, bien documenté, fiable et prend en charge des scénarios multiplateformes/inter-écosystèmes tels que iOS, Android et web.

  • TempState : Pour les données qui peuvent être supprimées lorsque l’application n’est pas en cours d’exécution. Accédez à ce dossier avec Windows.Storage.ApplicationData.Current.TemporaryFolder.

Accéder au reste du système de fichiers

Une application UWP doit déclarer son intention d’accéder à une bibliothèque d’utilisateurs spécifique en ajoutant la fonctionnalité correspondante à son manifeste. L’utilisateur est ensuite invité quand l’application est installée pour vérifier qu’elle autorise l’accès à la bibliothèque spécifiée. Si ce n’est pas le cas, l’application n’est pas installée. Il existe des fonctionnalités permettant d’accéder aux images, vidéos et bibliothèques de musique. Consultez la déclaration de fonctionnalité d’application pour obtenir une liste complète. Pour obtenir un StorageFolder pour ces bibliothèques, utilisez la classe Windows.Storage.KnownFolders .

Bibliothèque de documents

Bien qu’il existe une possibilité d’accéder à la bibliothèque de documents de l’utilisateur, cette fonctionnalité est restreinte, ce qui signifie qu’une application déclarant qu’elle sera rejetée par le Microsoft Store, sauf si vous suivez un processus pour obtenir une approbation spéciale. Il n’est pas destiné à une utilisation générale. Utilisez plutôt les sélecteurs de fichiers ou de dossiers (consultez Ouvrir des fichiers et dossiers avec un sélecteur et enregistrer un fichier avec un sélecteur) qui permettent à l’utilisateur d’accéder au dossier ou au fichier. Lorsque l’utilisateur accède à un dossier ou un fichier, il dispose implicitement de l’autorisation pour que l’application y accède et le système autorise l’accès.

Accès général

Votre application peut également déclarer la fonctionnalité broadFileSystem restreinte dans son manifeste, ce qui nécessite également l’approbation du Microsoft Store. Ensuite, l’application peut accéder à n’importe quel fichier auquel l’utilisateur a accès sans nécessiter l’intervention d’un sélecteur de fichiers ou de dossiers.

Pour obtenir la liste complète des emplacements auxquels les applications peuvent accéder, consultez les autorisations d’accès aux fichiers.

API et documents utiles

Voici un résumé rapide des API et d’autres documentations utiles pour vous aider à bien démarrer avec les fichiers et dossiers.

API utiles

API (Interface de Programmation d'Applications) Descriptif
Windows.Storage.StorageFile Fournit des informations sur le fichier et les méthodes permettant de créer, d’ouvrir, de copier, de supprimer et de renommer des fichiers.
windows.Storage.StorageFolder Fournit des informations sur le dossier, les méthodes de création de fichiers et les méthodes de création, de renommage et de suppression de dossiers.
Entrées/Sorties de fichiers Fournit un moyen simple de lire et d’écrire du texte. Cette classe peut également lire/écrire un tableau d’octets ou le contenu d’une mémoire tampon.
PathIO Fournit un moyen simple de lire ou écrire du texte à partir d’un fichier en utilisant un chemin de fichier sous forme de chaîne de caractères. Cette classe peut également lire/écrire un tableau d’octets ou le contenu d’une mémoire tampon.
DataReader & DataWriter Lire et écrire des mémoires tampons, des octets, des entiers, des GUID, des intervalles de temps, etc., depuis/vers un flux.
Windows.Storage.ApplicationData.Current Fournit l’accès aux dossiers créés pour l’application, tels que le dossier local, le dossier itinérant et le dossier de fichiers temporaires.
Windows.Storage.Pickers.FolderPicker Permet à l’utilisateur de choisir un dossier et de retourner un StorageFolder pour celui-ci . Il s’agit de la façon dont vous obtenez l’accès aux emplacements auxquels l’application ne peut pas accéder par défaut.
Windows.Storage.Pickers.FileOpenPicker Permet à l’utilisateur de choisir un fichier à ouvrir et de renvoyer un StorageFile pour celui-ci. Il s’agit de la façon dont vous obtenez l’accès à un fichier auquel l’application ne peut pas accéder par défaut.
Windows.Storage.Pickers.FileSavePicker Permet à l’utilisateur de choisir le nom, l’extension et l’emplacement de stockage d’un fichier. Retourne un StorageFile. Il s’agit de la façon dont vous enregistrez un fichier à un emplacement auquel l’application ne peut pas accéder par défaut.
espace de noms Windows.Storage.Streams Couvre la lecture et l’écriture de flux de données. En particulier, examinez les classes DataReader et DataWriter qui lisent et écrivent des mémoires tampons, des octets, des entiers, des GUID, des timeSpans, etc.

Documents utiles

Sujet Descriptif
espace de noms Windows.Storage Documentation de référence sur l’API.
Fichiers, dossiers et bibliothèques Documents conceptuels.
Créer, écrire et lire un fichier Couvre la création, la lecture et l’écriture de texte, de données binaires et de flux.
bien démarrer le stockage des données d’application localement En plus de couvrir les meilleures pratiques d’enregistrement des données locales, couvre l’objectif du dossier LocalSettings et LocalCache.
Enregistrer et récupérer des paramètres et d'autres données d'application Fournit une vue d’ensemble des différents types de stockages de données d'application tels que les dossiers locaux, itinérants et temporaires.
autorisations d’accès aux fichiers Informations sur les emplacements du système de fichiers auxquels votre application peut accéder.
Ouvrir des fichiers et des dossiers avec un sélecteur Montre comment accéder aux fichiers et dossiers en permettant à l’utilisateur de décider via une interface utilisateur du sélecteur.
Windows.Storage.Streams Types utilisés pour lire et écrire des flux.
fichiers et dossiers dans les bibliothèques Musique, Images et Vidéos Explique comment supprimer des dossiers des bibliothèques, obtenir la liste des dossiers d’une bibliothèque et découvrir les photos stockées, la musique et les vidéos.

Exemples de code utiles

Exemple de code Descriptif
Exemple de données d’application Montre comment stocker et récupérer des données spécifiques à chaque utilisateur à l’aide des API de données d’application.
exemple d’accès aux fichiers Montre comment créer, lire, écrire, copier et supprimer un fichier.
Exemple de sélecteur de fichiers Montre comment accéder aux fichiers et dossiers en laissant l’utilisateur les choisir avec l’interface utilisateur et comment enregistrer un fichier afin que l’utilisateur puisse spécifier le nom, le type de fichier et l’emplacement d’un fichier à enregistrer.
exemple JSON Montre comment encoder et décoder des objets JavaScript Object Notation (JSON), des tableaux, des chaînes, des nombres et des booléens à l’aide de l’espace de noms Windows.Data.Json.
Exemples de code supplémentaires Choisissez fichiers, dossiers et bibliothèques dans la liste déroulante des catégories.