Auxiliares do sistema de arquivos
Este artigo descreve como você pode usar a interface .NET Multi-platform App UI (.NET MAUI). IFileSystem
Essa interface fornece métodos auxiliares que acessam o cache e os diretórios de dados do aplicativo e ajuda a acessar arquivos no pacote do aplicativo.
A implementação padrão da interface está disponível por meio da IFileSystem
FileSystem.Current
propriedade. A interface e FileSystem
a IFileSystem
classe estão contidas no Microsoft.Maui.Storage
namespace.
Usando auxiliares do sistema de arquivos
Cada sistema operacional terá caminhos exclusivos para o cache do aplicativo e os diretórios de dados do aplicativo. A IFileSystem
interface fornece uma API de plataforma cruzada para acessar esses caminhos de diretório.
Diretório de cache
Para fazer com que o diretório do aplicativo armazene dados de cache. Os dados de cache podem ser usados para quaisquer dados que precisam persistir por mais tempo do que os dados temporários, mas não devem ser dados necessários para operar o aplicativo, pois o sistema operacional pode limpar esse armazenamento.
string cacheDir = FileSystem.Current.CacheDirectory;
Diretório de dados do aplicativo
Para obter o diretório de nível superior do aplicativo para todos os arquivos que não são arquivos de dados do usuário. O backup desses arquivos ocorre na estrutura de sincronização do sistema operacional.
string mainDir = FileSystem.Current.AppDataDirectory;
Arquivos empacotados
Para abrir um arquivo empacotado no pacote do aplicativo, use o método e passe o OpenAppPackageFileAsync
nome do arquivo. Esse método retorna um somente Stream leitura que representa o conteúdo do arquivo. O exemplo a seguir demonstra o uso de um método para ler o conteúdo de texto de um arquivo:
public async Task<string> ReadTextFile(string filePath)
{
using Stream fileStream = await FileSystem.Current.OpenAppPackageFileAsync(filePath);
using StreamReader reader = new StreamReader(fileStream);
return await reader.ReadToEndAsync();
}
Copiar um arquivo empacotado para a pasta de dados do aplicativo
Não é possível modificar o arquivo empacotado de um aplicativo. Mas você pode copiar um arquivo empacotado para o diretório de cache ou diretório de dados do aplicativo. O exemplo a seguir usa OpenAppPackageFileAsync
para copiar um arquivo empacotado para a pasta de dados do aplicativo:
public async Task CopyFileToAppDataDirectory(string filename)
{
// Open the source file
using Stream inputStream = await FileSystem.Current.OpenAppPackageFileAsync(filename);
// Create an output filename
string targetFile = Path.Combine(FileSystem.Current.AppDataDirectory, filename);
// Copy the file to the AppDataDirectory
using FileStream outputStream = File.Create(targetFile);
await inputStream.CopyToAsync(outputStream);
}
Diferenças de plataforma
Esta seção descreve as diferenças específicas da plataforma com os auxiliares do sistema de arquivos.
FileSystem.CacheDirectory
Retorna o CacheDir do contexto atual.FileSystem.AppDataDirectory
Retorna os FilesDir do contexto atual, dos quais é feito backup usando o Backup Automático iniciado na API 23 e superior.FileSystem.OpenAppPackageFileAsync
Arquivos que foram adicionados ao projeto com a ação de compilação do MauiAsset podem ser abertos com esse método. Os projetos .NET MAUI processarão qualquer arquivo na pasta Resources\Raw como um MauiAsset.O
FileSystem.OpenPackageFileAsync
método não pode obter o comprimento do fluxo no Android acessando aResult.Length
propriedade. Em vez disso, você precisa ler todo o fluxo e contar quantos bytes existem para obter o tamanho do ativo.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários