Acesso e permissões de arquivo

Acesso ao arquivo e permissões (aplicativos do Tempo de Execução do Windows)

[ Este artigo destina-se aos desenvolvedores do Windows 8.x e do Windows Phone 8.x que escrevem aplicativos do Windows Runtime. Se você estiver desenvolvendo para o Windows 10, consulte documentação mais recente]

Os aplicativos podem acessar certos locais do sistema de arquivo por padrão. Os aplicativos também podem acessar outros locais através do seletor de arquivos ou declarando as funcionalidades.

Localizações que todos os aplicativos podem acessar

Ao criar um novo aplicativo, por padrão, você pode acessar os seguintes locais do sistema de arquivos:

  • Diretório de instalação do aplicativo. A pasta onde o aplicativo está instalado no sistema do usuário.

    Há duas maneiras principais de acessar arquivos e pastas no diretório de instalação de seu aplicativo:

    1. Você pode recuperar um StorageFolder que represente o diretório de instalação do aplicativo, assim:

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

      Depois que você recuperar um StorageFolder que represente o diretório de instalação, você pode acessar arquivos e pastas no diretório usando métodos StorageFolder. Neste exemplo, este StorageFolder é armazenado na variável installDirectory. Você pode aprender mais sobre como trabalhar com o pacote do aplicativo e diretório de instalação baixando o Exemplo de informações de pacote do aplicativo.

    2. Você pode recuperar um arquivo diretamente do diretório do seu aplicativo de instalação usando um URI de aplicativo, assim:

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

      Quando o GetFileFromApplicationUriAsync é concluído, ele retorna um StorageFile que representa o arquivo file.txt no diretório de instalação do aplicativo (file no exemplo).

      O prefixo "ms-appx:///" na URI refere-se ao diretório de instalação do aplicativo. Você pode aprender mais sobre como usar as URIs em Como usar URIs para o conteúdo de referência.

    Diferentemente de outros locais, você também pode acessar os arquivos no diretório de instalação de seu aplicativo usando Win32 e COM para aplicativos da Windows Store e algumas funções da Biblioteca Padrão C/C++ do Microsoft Visual Studio.

    O diretório de instalação do aplicativo é um local somente leitura. Você não pode obter acesso ao diretório de instalação através do seletor de arquivos.

  • Localizações de dados do aplicativo. As pastas em que seu aplicativo pode armazenar dados. Essas pastas (local, móvel e temporária) são criadas quando o aplicativo é instalado.

    Há duas maneiras principais de acessar arquivos e pastas nos locais de dados de seu aplicativo:

    1. Use as propriedades ApplicationData para recuperar uma pasta de dados do aplicativo.

      Por exemplo, você pode usar o ApplicationData.LocalFolder para recuperar um StorageFolder que represente a pasta local do seu aplicativo assim:

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

      Se você quiser acessar o roaming do seu aplicativo ou uma pasta temporária, use o RoamingFolder ou a propriedade TemporaryFolder.

      Depois que você recuperar um StorageFolder que represente um local de dados do aplicativo, você pode acessar arquivos e pastas nesse local usando os métodos StorageFolder. Neste exemplo, estes objetos StorageFolder são armazenados na variável localFolder. Você pode aprender mais sobre como usar locais de dados de aplicativo locais em Gerenciando dados de aplicativos, e baixando a Amostra de dados do aplicativo.

    2. Por exemplo, você pode recuperar um arquivo diretamente da pasta local do seu aplicativo de instalação usando uma URI de aplicativo, assim:

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

      Quando o GetFileFromApplicationUriAsync é concluído, ele retorna um StorageFile que representa o arquivofile.txt na pasta local do aplicativo (file no exemplo).

      O prefixo "ms-appdata:///local/" na URI refere-se à pasta local do aplicativo. Para acessar os arquivos no roaming do aplicativo ou em pastas temporárias, use "ms-appdata:///roaming/" ou "ms-appdata:///temporary/". Você pode saber mais sobre como usar URIs do aplicativo em Como carregar recursos de arquivos.

    Diferentemente de outros locais, você também pode acessar os arquivos nos locais de dados de seu aplicativo usando Win32 e COM para aplicativos da Windows Store e algumas funções da Biblioteca Padrão C/C++ do Visual Studio.

    Você não pode acessar as pastas locais, roaming ou temporária com o seletor de arquivos.

  • Dispositivos removíveis. Além disso, o aplicativo pode acessar alguns dos arquivos em dispositivos conectados por padrão. Esta é uma opção se o seu aplicativo usa a extensão de Dispositivo AutoPlay para ser iniciada automaticamente quando os usuários conectam um dispositivo, como uma câmera ou pen drive USB, ao seu sistema. Os arquivos que seu aplicativo podem acessar são limitados a determinados tipos de arquivos que são especificados através de declarações Associação de Tipo de Arquivos no manifesto do aplicativo.

    É claro que você também pode obter acesso a arquivos e pastas em um dispositivo removível chamando o seletor de arquivos (usando o FileOpenPicker e FolderPicker) e permitindo que o usuário escolha os arquivos e pastas para o seu aplicativo acessar. Saiba como usar o seletor de arquivos em Início rápido: acessando arquivos com seletores de arquivos.

    Observação  Para informações sobre acesso ao cartão SD em aplicativos Windows Phone, veja Acessar o cartão SD em aplicativos Windows Phone.
     

Locais que os aplicativos da Windows Store podem acessar

  • Pasta Downloads do usuário. A pasta onde os arquivos baixados são salvos por padrão.

    Por padrão, o aplicativo só pode acessar arquivos e pastas na pasta de Downloads do usuário que seu aplicativo criou. No entanto, você pode ter acesso a arquivos e pastas na pasta Downloads do usuário chamando um seletor de arquivos (FileOpenPicker ou FolderPicker) de modo que os usuários possam navegar e escolher os arquivos ou pastas para o seu aplicativo acessar.

    • Você pode criar um arquivo na pasta Downloads do usuário, assim:

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

      O DownloadsFolder.CreateFileAsync é sobrecarregado de modo que você pode especificar o que o sistema deve fazer se já houver um arquivo existente na pasta Downloads que tem o mesmo nome. Quando esses métodos são concluídos, eles retornam um StorageFile que representa o arquivo que foi criado. Este arquivo é chamado newFile no exemplo.

    • Você pode criar uma subpasta na pasta Downloads do usuário, assim:

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

      O DownloadsFolder.CreateFolderAsync é sobrecarregado de modo que você possa especificar o que o sistema deve fazer se já houver uma subpasta existente na pasta Downloads que tem o mesmo nome. Quando esses métodos são concluídos, eles retornam um StorageFolder que representa a subpasta que foi criada. Este arquivo é chamado newFolder no exemplo.

    Se você criar um arquivo ou uma pasta na pasta Downloads, recomendamos que você adicione esse item ao FutureAccessList do seu aplicativo, para que ele possa acessar prontamente esse item no futuro.

Acessando locais adicionais

Além dos locais padrão, o aplicativo pode acessar arquivos e pastas adicionais declarando as funcionalidades no manifesto do aplicativo (veja Declarações de funcionalidade do aplicativo), ou chamando um seletor de arquivos para permitir que o usuário escolha os arquivos e as pastas para o aplicativo acessar (veja Guia de início rápido: acessando arquivos com seletores de arquivos).

A tabela a seguir lista outros locais que você pode acessar declarando a funcionalidade (ou funcionalidades) e usando a API de Windows.Storage associada:

LocalRecursoAPI do Windows.Storage

Documentos

(Somente aplicativos da Windows Store)

DocumentsLibrary
Observação  Você deve adicionar Associações de tipo de arquivo ao manifesto do aplicativo que declarem tipos específicos de arquivos que seu aplicativo pode acessar neste local.
 

Use esse recurso se o seu aplicativo:

  • Possibilitar o acesso offline entre plataformas ao conteúdo específico do OneDrive usando URLs válidas do OneDrive ou IDs de Recursos corretas
  • Salvar arquivos abertos no OneDrive do usuário automaticamente enquanto estiver offline
KnownFolders.DocumentsLibrary
MúsicaMusicLibrary

Para obter mais informações sobre acesso a bibliotecas de mídia a partir de um aplicativo do Windows, consulte Acessar bibliotecas de mídia em aplicativos do Windows Phone.

KnownFolders.MusicLibrary
ImagensPicturesLibrary

Para obter mais informações sobre acesso a bibliotecas de mídia a partir de um aplicativo do Windows, consulte Acessar bibliotecas de mídia em aplicativos do Windows Phone.

KnownFolders.PicturesLibrary
VídeosVideosLibrary

Para obter mais informações sobre acesso a bibliotecas de mídia a partir de um aplicativo do Windows, consulte Acessar bibliotecas de mídia em aplicativos do Windows Phone.

KnownFolders.VideosLibrary
Dispositivos removíveisRemovableDevices
Observação  Você deve adicionar Associações de tipo de arquivo ao manifesto do aplicativo que declarem tipos específicos de arquivos que seu aplicativo pode acessar neste local.
 

Para informações sobre acesso ao cartão SD em aplicativos Windows Phone, veja Acessar o cartão SD em aplicativos Windows Phone.

KnownFolders.RemovableDevices

Bibliotecas de grupo doméstico

(Somente aplicativos da Windows Store)

Pelo menos um dos seguintes recursos é necessário.

KnownFolders.HomeGroup

Dispositivos do servidor de mídia (DLNA)

(Somente aplicativos da Windows Store)

Pelo menos um dos seguintes recursos é necessário.

KnownFolders.MediaServerDevices

Pastas de Convenção de Nomenclatura Universal (UNC)

(Somente aplicativos da Windows Store)

Uma combinação dos seguintes recursos é necessária.

Observação  Você deve adicionar Associações de tipo de arquivo ao manifesto do aplicativo que declarem tipos específicos de arquivos que seu aplicativo pode acessar neste local.
 

Recupere uma pasta usando:

StorageFolder.GetFolderFromPathAsync

Recupere um arquivo usando:

StorageFile.GetFileFromPathAsync

 

Tópicos relacionados

Gerenciando dados de aplicativo
Recursos de JavaScript
Início rápido: lendo e gravando um arquivo
Guia de início rápido: acessando arquivos com seletores de arquivos
Como carregar recursos de arquivos
Como rastrear arquivos e pastas usados recentemente
Recursos de C#/C++/VB
Início rápido: lendo e gravando um arquivo
Guia de início rápido: Acessando arquivos com seletores de arquivos
Como carregar recursos de arquivos
Como rastrear arquivos e pastas usados recentemente
Exemplos
Exemplo de informações de pacote de aplicativos
Amostra de dados do aplicativo
Amostra de acesso a arquivos
Amostra do seletor de arquivos
Referência de 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

 

 

Mostrar:
© 2017 Microsoft