Accès aux fichiers et autorisations

Autorisations et accès aux fichiers (applications Windows Runtime)

[ Cet article est destiné aux développeurs de Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]

Les applications peuvent accéder à certains emplacements du système de fichiers par défaut. Les applications peuvent également accéder à des emplacements supplémentaires par le biais du sélecteur de fichiers ou en déclarant des fonctionnalités.

Emplacements accessibles par toutes les applications

Lorsque vous créez une application, vous pouvez accéder par défaut aux emplacements suivants du système de fichiers :

  • Répertoire d’installation de l’application : dossier dans lequel votre application est installée sur le système de l’utilisateur.

    Il existe deux manières principales d’accéder à des fichiers et des dossiers dans le répertoire d’installation de votre application :

    1. Vous pouvez récupérer une classe StorageFolder qui représente le répertoire d’installation de votre application, comme suit :

      
      
      var installDirectory = Windows.ApplicationModel.Package.current.installedLocation;
      
      

      Une fois que vous avez récupéré une classe StorageFolder qui représente le répertoire d’installation, vous pouvez accéder aux fichiers et dossiers situés dans ce répertoire en utilisant les méthodes StorageFolder. Dans cet exemple, cette classe StorageFolder est stockée dans la variable installDirectory. Pour en savoir plus sur l’utilisation de votre package d’application et du répertoire d’installation, téléchargez l’exemple d’informations de package d’application.

    2. Vous pouvez récupérer un fichier directement à partir du répertoire d’installation de votre application en utilisant un URI d’application, comme suit :

      
      
      Windows.Storage.StorageFile.getFileFromApplicationUriAsync("ms-appx:///file.txt").done(
          function(file) {
              // Process file
          }
      );
      
      

      Une fois la méthode GetFileFromApplicationUriAsync exécutée, elle renvoie une classe StorageFile qui représente le fichier file.txt dans le répertoire d’installation de l’application (file, dans cet exemple).

      Le préfixe "ms-appx:///" de l’URI fait référence au répertoire d’installation de l’application. Pour en savoir plus sur l’utilisation des URI, voir Comment utiliser des URI pour référencer du contenu.

    En outre, contrairement à d’autres emplacements, vous pouvez également accéder à des fichiers dans le répertoire d’installation de votre application à l’aide de certaines API Win32 et COM pour les applications du Windows Store et de certaines fonctions de la bibliothèque C/C++ standard à partir de Microsoft Visual Studio.

    Le répertoire d’installation de l’application est un emplacement en lecture seule. Vous ne pouvez pas accéder à ce répertoire d’installation par le biais du sélecteur de fichiers.

  • Emplacements des données d’application : dossiers dans lesquels votre application peut stocker des données. Ces dossiers (local, roaming et temporary) sont créés lors de l’installation de votre application.

    Il existe deux manières principales d’accéder à des fichiers et des dossiers dans les emplacements des données de votre application :

    1. Utilisez les propriétés ApplicationData pour récupérer un dossier de données de l’application.

      Par exemple, vous pouvez utiliser ApplicationData.LocalFolder pour récupérer une classe StorageFolder qui représente le dossier local de votre application, comme suit :

      
      
      var localFolder = Windows.Storage.ApplicationData.current.localFolder;
      
      

      Si vous souhaitez accéder au dossier roaming ou temporary de votre application, utilisez la propriété RoamingFolder ou TemporaryFolder à la place.

      Une fois que vous avez récupéré une classe StorageFolder qui représente un emplacement de données de l’application, vous pouvez accéder aux fichiers et dossiers situés dans cet emplacement en utilisant les méthodes StorageFolder. Dans cet exemple, ces objets StorageFolder sont stockés dans la variable localFolder. Pour en savoir plus sur l’utilisation des emplacements des données de l’application, voir Gestion des données d’application et téléchargez l’exemple de données d’application.

    2. Par exemple, vous pouvez récupérer un fichier directement à partir du dossier local de votre application en utilisant un URI d’application, comme suit :

      
      
      Windows.Storage.StorageFile.getFileFromApplicationUriAsync("ms-appdata:///local/file.txt").done(
          function(file) {
              // Process file
          }
      );
      
      

      Une fois la méthode GetFileFromApplicationUriAsync exécutée, elle renvoie une classe StorageFile qui représente le fichier file.txt dans le dossier local de l’application (file, dans cet exemple).

      Le préfixe "ms-appdata:///local/" de l’URI fait référence au dossier local de l’application. Pour accéder à des fichiers dans les dossiers roaming ou temporary, utilisez "ms-appdata:///roaming/" ou "ms-appdata:///temporary/" à la place. Pour en savoir plus sur l’utilisation des URI d’application, voir Comment charger des ressources de fichiers.

    En outre, contrairement à d’autres emplacements, vous pouvez également accéder à des fichiers dans les emplacements de données de votre application à l’aide de certaines API Win32 et COM pour les applications du Windows Store et de certaines fonctions de la bibliothèque C/C++ standard à partir de Microsoft Visual Studio.

    Vous ne pouvez pas accéder aux dossiers local, roaming ni temporary par le biais du sélecteur de fichiers.

  • Périphériques amovibles. De plus, votre application peut accéder par défaut à certains fichiers sur les périphériques connectés. Cela est une option si votre application utilise l’extension de lecture automatique pour se lancer automatiquement lorsque l’utilisateur connecte un périphérique, tel qu’un appareil photo ou une clé USB, à son système. Les fichiers auxquels votre application peut accéder sont limités aux types de fichiers spécifiques qui sont spécifiés par le biais de déclarations d’associations de types de fichiers dans le manifeste de votre application.

    Bien entendu, vous pouvez également accéder à des fichiers et dossiers sur un périphérique amovible en appelant le sélecteur de fichiers (en utilisant FileOpenPicker et FolderPicker) et en laissant l’utilisateur sélectionner les fichiers et dossiers auxquels votre application pourra accéder. Découvrez comment utiliser le sélecteur de fichiers dans Démarrage rapide : accès aux fichiers à l’aide de sélecteurs de fichiers.

    Remarque  Pour plus d’informations sur l’accès à une carte SD depuis une application du Windows Phone, voir Accéder à la carte SD dans les applications du Windows Phone .
     

Emplacements auxquels les applications du Windows Store peuvent accéder

  • Dossier Téléchargements de l’utilisateur : dossier dans lequel les fichiers téléchargés sont enregistrés par défaut.

    Par défaut, votre application peut seulement accéder aux fichiers et dossiers situés dans le dossier Téléchargements de l’utilisateur que votre application a créé. Toutefois, vous pouvez accéder aux fichiers et dossiers situés dans le dossier Téléchargements de l’utilisateur en appelant un sélecteur de fichiers (FileOpenPicker ou FolderPicker) afin que les utilisateurs puissent parcourir et sélectionner les fichiers ou les dossiers auxquels votre application pourra accéder.

    • Vous pouvez créer un fichier dans le dossier Téléchargements de l’utilisateur comme suit :

      
      Windows.Storage.DownloadsFolder.createFileAsync("file.txt").done(
          function(newFile) {
              // Process file
          }
      );
      
      

      DownloadsFolder.CreateFileAsync est surchargé afin que vous puissiez spécifier ce que le système doit faire si le dossier Téléchargements contient déjà un fichier du même nom. Une fois ces méthodes exécutées, elles renvoient une classe StorageFile qui représente le fichier qui a été créé. Ce fichier est appelé newFile dans cet exemple.

    • Vous pouvez créer un sous-dossier dans le dossier Téléchargements de l’utilisateur comme suit :

      
      Windows.Storage.DownloadsFolder.createFolderAsync("New Folder").done(
          function(newFolder) {
              // Process folder
          }
      );
      
      

      DownloadsFolder.CreateFolderAsync est surchargé afin que vous puissiez spécifier ce que le système doit faire si le dossier Téléchargements contient déjà un sous-dossier du même nom. Une fois ces méthodes exécutées, elles renvoient une classe StorageFolder qui représente le sous-dossier qui a été créé. Ce fichier est appelé newFolder dans cet exemple.

    Si vous créez un fichier ou un dossier dans le dossier Téléchargements, nous vous recommandons d’ajouter cet élément à la propriété FutureAccessList de votre application afin qu’elle puisse accéder à cet élément dans le futur.

Accès à des emplacements supplémentaires

Outre les emplacements par défaut, une application peut accéder à des fichiers et dossiers supplémentaires en déclarant des fonctionnalités dans le manifeste de l’application (voir Déclarations des fonctionnalités d’application) ou en appelant un sélecteur de fichiers pour permettre à l’utilisateur de sélectionner les fichiers et les dossiers auxquels l’application pourra accéder (voir Démarrage rapide : accès aux fichiers à l’aide de sélecteurs de fichiers).

Le tableau qui suit dresse une liste d’emplacements supplémentaires auxquels vous pouvez accéder en déclarant une (ou plusieurs) fonctionnalité et en vous servant de l’API Windows.Storage qui y est associée :

EmplacementFonctionnalitéAPI Windows.Storage

Documents

(Applications du Windows Store uniquement)

DocumentsLibrary
Remarque  Vous devez ajouter des associations de types de fichiers dans le manifeste de l’application pour déclarer les types de fichiers spécifiques auxquels votre application pourra accéder dans cet emplacement.
 

Utilisez cette fonctionnalité si votre application :

  • facilite l’accès hors connexion interplateforme à du contenu OneDrive spécifique à l’aide d’URL ou d’ID de ressource OneDrive valides ;
  • enregistre automatiquement les fichiers ouverts sur le OneDrive de l’utilisateur en mode hors connexion.
KnownFolders.DocumentsLibrary
MusiqueMusicLibrary

Pour plus d’informations sur l’accès aux bibliothèques multimédias depuis une application du Windows Phone, voir Accéder aux bibliothèques multimédias dans les applications du Windows Phone .

KnownFolders.MusicLibrary
ImagesPicturesLibrary

Pour plus d’informations sur l’accès aux bibliothèques multimédias depuis une application du Windows Phone, voir Accéder aux bibliothèques multimédias dans les applications du Windows Phone .

KnownFolders.PicturesLibrary
VidéosVideosLibrary

Pour plus d’informations sur l’accès aux bibliothèques multimédias depuis une application du Windows Phone, voir Accéder aux bibliothèques multimédias dans les applications du Windows Phone .

KnownFolders.VideosLibrary
Périphériques amoviblesRemovableDevices
Remarque  Vous devez ajouter des associations de types de fichiers dans le manifeste de l’application pour déclarer les types de fichiers spécifiques auxquels votre application pourra accéder dans cet emplacement.
 

Pour plus d’informations sur l’accès à une carte SD depuis une application du Windows Phone, voir Accéder à la carte SD dans les applications du Windows Phone .

KnownFolders.RemovableDevices

Bibliothèques du groupe résidentiel

(Applications du Windows Store uniquement)

Au moins une des fonctionnalités suivantes est requise.

KnownFolders.HomeGroup

Périphériques de serveur multimédia (DLNA)

(Applications du Windows Store uniquement)

Au moins une des fonctionnalités suivantes est requise.

KnownFolders.MediaServerDevices

Dossiers UNC (Universal Naming Convention)

(Applications du Windows Store uniquement)

Une combinaison des fonctionnalités suivantes est requise.

Remarque  Vous devez ajouter des associations de types de fichiers dans le manifeste de l’application pour déclarer les types de fichiers spécifiques auxquels votre application pourra accéder dans cet emplacement.
 

Récupérez un dossier en utilisant :

StorageFolder.GetFolderFromPathAsync

Récupérez un fichier en utilisant :

StorageFile.GetFileFromPathAsync

 

Rubriques associées

Gestion des données d’application
Ressources JavaScript
Démarrage rapide : lecture et écriture d’un fichier
Démarrage rapide : accès aux fichiers à l’aide de sélecteurs de fichiers
Comment charger des ressources de fichiers
Comment suivre les fichiers et les dossiers récemment utilisés
Ressources C#/C++/VB
Démarrage rapide : lecture et écriture d’un fichier
Démarrage rapide : accès aux fichiers à l’aide de sélecteurs de fichiers
Comment charger des ressources de fichiers
Comment suivre les fichiers et les dossiers récemment utilisés
Exemples
Exemple d’informations de package d’application
Exemple de données d’application
Exemple d’accès aux fichiers
Exemple de sélecteur de fichiers
Informations de référence sur les API
Windows.ApplicationModel.Package
Windows.Storage.ApplicationData
Windows.Storage.DownloadsFolder
Windows.Storage.Pickers.FileOpenPicker
Windows.Storage.Pickers.FolderPicker
Windows.Storage.KnownFolders
Windows.Storage.StorageFile
Windows.Storage.StorageFolder
Windows.Storage.FileIO
Windows.Storage.PathIO
Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList
Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList

 

 

Afficher:
© 2016 Microsoft