Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os aplicativos da Plataforma Universal do Windows (UWP) podem acessar determinados locais do sistema de arquivos por padrão. Os aplicativos também podem acessar locais adicionais por meio do seletor de arquivos ou declarando recursos.
Locais que os aplicativos UWP podem acessar
Ao criar um novo aplicativo, você pode acessar os seguintes locais do sistema de arquivos por padrão:
Diretório de instalação do aplicativo
A pasta onde seu aplicativo está instalado no sistema do usuário.
Há duas maneiras principais de acessar arquivos e pastas no diretório de instalação do aplicativo:
Você pode recuperar um StorageFolder que representa o diretório de instalação do seu aplicativo, da seguinte forma:
Windows.Storage.StorageFolder installedLocation = Windows.ApplicationModel.Package.Current.InstalledLocation;var installDirectory = Windows.ApplicationModel.Package.current.installedLocation;#include <winrt/Windows.Storage.h> ... Windows::Storage::StorageFolder installedLocation{ Windows::ApplicationModel::Package::Current().InstalledLocation() };Windows::Storage::StorageFolder^ installedLocation = Windows::ApplicationModel::Package::Current->InstalledLocation;Em seguida, você pode acessar arquivos e pastas no diretório usando StorageFolder métodos. No exemplo, esse StorageFolder é armazenado na variável
installDirectory. Você pode saber mais sobre como trabalhar com o seu pacote de aplicação e o diretório de instalação no exemplo de informações do pacote de aplicação no GitHub.Você pode recuperar um arquivo diretamente do diretório de instalação do seu aplicativo usando um URI do aplicativo, da seguinte forma:
using Windows.Storage; StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///file.txt"));Windows.Storage.StorageFile.getFileFromApplicationUriAsync("ms-appx:///file.txt").done( function(file) { // Process file } );Windows::Foundation::IAsyncAction ExampleCoroutineAsync() { Windows::Storage::StorageFile file{ co_await Windows::Storage::StorageFile::GetFileFromApplicationUriAsync(Windows::Foundation::Uri{L"ms-appx:///file.txt"}) }; // Process file }auto getFileTask = create_task(StorageFile::GetFileFromApplicationUriAsync(ref new Uri("ms-appx:///file.txt"))); getFileTask.then([](StorageFile^ file) { // Process file });Quando GetFileFromApplicationUriAsync é concluído, ele retorna um StorageFile que representa o arquivo
file.txtno diretório de instalação do aplicativo (fileno exemplo).O prefixo "ms-appx:///" no URI refere-se ao diretório de instalação do aplicativo. Você pode saber mais sobre como usar URIs de aplicativo em Como usar URIs para fazer referência a conteúdo.
Além disso, e ao contrário de outros locais, também pode aceder a ficheiros no diretório de instalação da sua aplicação utilizando algumas Win32 e COM para aplicações da Plataforma Universal do Windows (UWP) e algumas funções da Biblioteca Padrão C/C++ do Microsoft Visual Studio.
O diretório de instalação da aplicação é um local de leitura apenas. Não é possível obter acesso ao diretório de instalação por meio do seletor de arquivos.
Aceder a localizações de dados de aplicações
As pastas onde seu aplicativo pode armazenar dados. Essas pastas (locais, móveis e temporárias) são criadas quando seu aplicativo é instalado.
Há duas maneiras principais de acessar arquivos e pastas dos locais de dados do seu aplicativo:
Use as propriedades de DadosAplicação para obter uma pasta de dados do aplicativo.
Por exemplo, você pode usar
.ApplicationData recuperar um StorageFolderLocalFolder que representa a pasta local do seu aplicativo da seguinte forma: using Windows.Storage; StorageFolder localFolder = ApplicationData.Current.LocalFolder;var localFolder = Windows.Storage.ApplicationData.current.localFolder;Windows::Storage::StorageFolder storageFolder{ Windows::Storage::ApplicationData::Current().LocalFolder() };using namespace Windows::Storage; StorageFolder^ storageFolder = ApplicationData::Current->LocalFolder;Se quiser aceder à pasta móvel ou temporária do seu aplicativo, use a propriedade RoamingFolder ou TemporaryFolder em vez disso.
Depois de recuperar o StorageFolder do
que representa um local de dados do aplicativo, você pode acessar arquivos e pastas nesse local usando os métodos do StorageFolder . No exemplo, esses objetos StorageFolder são armazenados na variável localFolder. Você pode aprender mais sobre como usar locais de dados de aplicações nas orientações na página da classe ApplicationData e baixando o exemplo de dados de aplicação do GitHub.Você pode recuperar um arquivo diretamente da pasta local do seu aplicativo usando um URI do aplicativo, da seguinte forma:
using Windows.Storage; StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appdata:///local/file.txt"));Windows.Storage.StorageFile.getFileFromApplicationUriAsync("ms-appdata:///local/file.txt").done( function(file) { // Process file } );Windows::Storage::StorageFile file{ co_await Windows::Storage::StorageFile::GetFileFromApplicationUriAsync(Windows::Foundation::Uri{ L"ms-appdata:///local/file.txt" }) }; // Process fileusing Windows::Storage; auto getFileTask = create_task(StorageFile::GetFileFromApplicationUriAsync(ref new Uri("ms-appdata:///local/file.txt"))); getFileTask.then([](StorageFile^ file) { // Process file });Quando GetFileFromApplicationUriAsync é concluído, ele retorna um StorageFile que representa o arquivo
file.txtna pasta local do aplicativo (fileno exemplo).O prefixo "ms-appdata:///local/" no URI refere-se à pasta local do aplicativo. Para acessar arquivos nas pastas móveis ou temporárias do aplicativo, use "ms-appdata:///roaming/" ou "ms-appdata:///temporary/" em vez disso. Você pode saber mais sobre como usar URIs de aplicativos em Como carregar recursos de arquivo.
Além disso, e ao contrário de outros locais, você também pode acessar arquivos em seus locais de dados de aplicativo usando alguns Win32 e COM para aplicativos UWP e algumas funções de biblioteca padrão C/C++ do Visual Studio.
Não é possível acessar as pastas locais, móveis ou temporárias por meio do seletor de arquivos.
Aceder a dispositivos amovíveis
Além disso, seu aplicativo pode acessar alguns dos arquivos em dispositivos conectados por padrão. Esta é uma opção se a sua aplicação utilizar a extensão Reprodução Automática para se iniciar automaticamente quando os utilizadores conectam um dispositivo, tal como uma câmara ou uma pen USB, ao sistema. Os arquivos que seu aplicativo pode acessar são limitados a tipos de arquivo específicos que são especificados por meio de declarações de Associação de Tipo de Arquivo no manifesto do aplicativo.
Claro, você também pode obter acesso a arquivos e pastas em um dispositivo removível chamando o seletor de arquivos (usando FileOpenPicker e FolderPicker) e permitindo que o usuário escolha arquivos e pastas para seu aplicativo acessar. Saiba como usar o seletor de arquivos em Abrir arquivos e pastas com um seletor.
Observação
Para obter mais informações sobre como acessar um cartão SD ou outros dispositivos removíveis, consulte Acessar o cartão SD.
Pasta Downloads do Usuário
A pasta onde os arquivos baixados são salvos por padrão.
Por padrão, seu aplicativo só pode acessar arquivos e pastas na pasta Downloads do usuário que seu aplicativo criou. No entanto, você pode obter acesso a arquivos e pastas na pasta Downloads do usuário chamando um seletor de arquivos (FileOpenPicker ou FolderPicker) para que os usuários possam navegar e escolher arquivos ou pastas para seu aplicativo acessar.
Você pode criar um arquivo na pasta Downloads do usuário da seguinte forma:
using Windows.Storage; StorageFile newFile = await DownloadsFolder.CreateFileAsync("file.txt");Windows.Storage.DownloadsFolder.createFileAsync("file.txt").done( function(newFile) { // Process file } );Windows::Storage::StorageFile newFile{ co_await Windows::Storage::DownloadsFolder::CreateFileAsync(L"file.txt") }; // Process fileusing Windows::Storage; auto createFileTask = create_task(DownloadsFolder::CreateFileAsync(L"file.txt")); createFileTask.then([](StorageFile^ newFile) { // Process file });DownloadsPasta. CreateFileAsync está sobrecarregado para que você possa especificar o que o sistema deve fazer se já houver um arquivo existente na pasta Downloads com o mesmo nome. Quando esses métodos são concluídos, eles retornam um StorageFile que representa o arquivo que foi criado. Esse arquivo é chamado
newFileno exemplo.Você pode criar uma subpasta na pasta Downloads do usuário da seguinte forma:
using Windows.Storage; StorageFolder newFolder = await DownloadsFolder.CreateFolderAsync("New Folder");Windows.Storage.DownloadsFolder.createFolderAsync("New Folder").done( function(newFolder) { // Process folder } );Windows::Storage::StorageFolder newFolder{ co_await Windows::Storage::DownloadsFolder::CreateFolderAsync(L"New Folder") }; // Process folderusing Windows::Storage; auto createFolderTask = create_task(DownloadsFolder::CreateFolderAsync(L"New Folder")); createFolderTask.then([](StorageFolder^ newFolder) { // Process folder });DownloadsPasta. CreateFolderAsync está sobrecarregado para que você possa especificar o que o sistema deve fazer se já houver uma subpasta existente na pasta Downloads com o mesmo nome. Quando esses métodos são concluídos, eles retornam um StorageFolder que representa a subpasta que foi criada. Esse arquivo é chamado
newFolderno exemplo.
Acesso a locais adicionais
Além dos locais padrão, um aplicativo pode acessar arquivos e pastas adicionais recursos de declaração no de manifesto do aplicativo ou chamando um seletor de arquivos para permitir que o usuário escolha arquivos e pastas para o aplicativo acessar.
Os aplicativos que declaram a extensão AppExecutionAlias
Manter o acesso a ficheiros e pastas
Quando seu aplicativo recupera um arquivo ou pasta por meio de um seletor, uma ativação de arquivo, uma operação de arrastar e soltar, etc., ele só tem acesso a esse arquivo ou pasta até que o aplicativo seja encerrado. Se você quiser acessar automaticamente o arquivo ou pasta no futuro, poderá adicioná-lo ao FutureAccessList
Recursos para acessar outros locais
A tabela a seguir lista locais adicionais que você pode acessar declarando um ou mais recursos e usando o associado Windows.Storage API.
| Localização | Capacidade | Windows.Storage API |
|---|---|---|
| Todos os arquivos aos quais o usuário tem acesso. Por exemplo: documentos, imagens, fotos, downloads, área de trabalho, OneDrive, etc. |
acesso amplo ao sistema de ficheiros Esta é uma capacidade restrita. O acesso é configurável em Configurações>Privacidade>Sistema de Arquivos. Como os usuários podem conceder ou negar a permissão a qualquer momento nas Definições, você deve garantir que o seu aplicativo seja resiliente a essas alterações. Se você achar que seu aplicativo não tem acesso, poderá optar por solicitar que o usuário altere a configuração fornecendo um link para o artigo de privacidade e acesso ao sistema de arquivos do Windows . Observe que o usuário deve fechar o aplicativo, alternar a configuração e reiniciar o aplicativo. Se eles alternarem a configuração enquanto o aplicativo estiver em execução, a plataforma suspenderá seu aplicativo para que você possa salvar o estado e, em seguida, encerrará o aplicativo à força para aplicar a nova configuração. Na atualização de abril de 2018, o padrão para a permissão é Ativado. Na atualização de outubro de 2018, o padrão é Desativado. Se você enviar um aplicativo para a Loja que declara esse recurso, precisará fornecer descrições adicionais do motivo pelo qual seu aplicativo precisa desse recurso e como ele pretende usá-lo. Esse recurso funciona para APIs no namespace Windows.Storage. Consulte a seção Exemplo no final deste artigo para obter um exemplo de como habilitar esse recurso em seu aplicativo. Observação: Esta funcionalidade não é suportada na Xbox. |
não aplicável |
| Documentos |
documentos Biblioteca Observação: você deve adicionar associações de tipo de arquivo ao manifesto do aplicativo que declarem tipos de arquivo específicos que seu aplicativo pode acessar nesse local. Use esse recurso se seu aplicativo: - Facilita o acesso offline entre plataformas a conteúdo específico do OneDrive usando URLs ou IDs de Recursos válidos do OneDrive - Salva arquivos abertos no OneDrive do usuário automaticamente enquanto estiver offline |
KnownFolders.BibliotecaDeDocumentos |
| Música |
bibliotecaDeMúsica Consulte também Ficheiros e pastas nas bibliotecas Música, Imagens e Vídeos. |
KnownFolders.MusicLibrary |
| Imagens |
bibliotecaDeImagens Consulte também Ficheiros e pastas nas bibliotecas Música, Imagens e Vídeos. |
KnownFolders.PicturesLibrary |
| Vídeos |
vídeosBiblioteca Consulte também Ficheiros e pastas nas bibliotecas Música, Imagens e Vídeos. |
KnownFolders.BibliotecaDeVideos |
| Dispositivos removíveis |
armazenamento removível Observação Você deve adicionar associações de tipo de arquivo ao manifesto do aplicativo que declaram tipos de arquivo específicos que seu aplicativo pode acessar nesse local. Consulte também Aceder ao cartão SD. |
KnownFolders.RemovableDevices |
| Bibliotecas do grupo doméstico | Pelo menos um dos seguintes recursos é necessário. - biblioteca de música - fotosBiblioteca - vídeos Biblioteca |
KnownFolders.HomeGroup |
| Dispositivos de servidor de mídia (DLNA) | Pelo menos um dos seguintes recursos é necessário. - biblioteca de música - fotosBiblioteca - vídeos Biblioteca |
PastasConhecidas.DispositivosServidorMídia |
| Pastas do Sistema Universal de Nomeação (UNC) | É necessária uma combinação das seguintes capacidades. A capacidade de redes domésticas e de trabalho: - privateNetworkClientServer E pelo menos uma capacidade de internet e redes públicas: - clienteInternet - internetClientServer E, se aplicável, o recurso de credenciais de domínio: - enterpriseAuthentication Observação: Você deve adicionar associações de tipo de arquivo ao manifesto do aplicativo que declaram tipos de arquivo específicos que seu aplicativo pode acessar nesse local. |
Recupere uma pasta usando: StorageFolder.GetFolderFromPathAsync Recupere um arquivo usando: StorageFile.GetFileFromPathAsync |
Exemplo
Este exemplo adiciona a capacidade restrita de broadFileSystemAccess. Além de especificar o recurso, o namespace rescap deve ser adicionado e é igualmente acrescentado a IgnorableNamespaces.
<Package
...
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap mp rescap">
...
<Capabilities>
<rescap:Capability Name="broadFileSystemAccess" />
</Capabilities>
Observação
Para obter uma lista completa dos recursos do aplicativo, consulte declarações de recursos do aplicativo.