FileSaver
FileSaver
permet de sélectionner un dossier cible et d’enregistrer des fichiers dans le système de fichiers.
Les conditions préalables suivantes sont requises pour le FileSaver
:
Si le niveau de l’API de votre appareil cible est inférieur à 33, ajoutez des autorisations à AndroidManifest.xml
:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Lorsque votre application cible le niveau 34 et supérieur de l’API Android, aucune autorisation supplémentaire n’est requise.
Pour plus d’informations sur l’autorisation de stockage Android, reportez-vous à la documentation Android sur Manifest.permission
Syntaxe
C#
Le FileSaver
peut être utilisé de la manière suivante dans C# :
async Task SaveFile(CancellationToken cancellationToken)
{
using var stream = new MemoryStream(Encoding.Default.GetBytes("Hello from the Community Toolkit!"));
var fileSaverResult = await FileSaver.Default.SaveAsync("test.txt", stream, cancellationToken);
if (fileSaverResult.IsSuccessful)
{
await Toast.Make($"The file was saved successfully to location: {fileSaverResult.FilePath}").Show(cancellationToken);
}
else
{
await Toast.Make($"The file was not saved successfully with error: {fileSaverResult.Exception.Message}").Show(cancellationToken);
}
}
Connaître la progression d’un fichier plutôt volumineux et prenant un certain temps pour être enregistré est susceptible de vous intéresser :
async Task SaveFile(CancellationToken cancellationToken)
{
using var stream = new MemoryStream(Encoding.Default.GetBytes("Hello from the Community Toolkit!"));
var saverProgress = new Progress<double>(percentage => ProgressBar.Value = percentage);
var fileSaverResult = await FileSaver.Default.SaveAsync("test.txt", stream, saverProgress, cancellationToken);
if (fileSaverResult.IsSuccessful)
{
await Toast.Make($"The file was saved successfully to location: {fileSaverResult.FilePath}").Show(cancellationToken);
}
else
{
await Toast.Make($"The file was not saved successfully with error: {fileSaverResult.Exception.Message}").Show(cancellationToken);
}
}
Méthodes
méthode | Description |
---|---|
SaveAsync | Demande l’autorisation, permet de sélectionner un dossier et d’enregistrer des fichiers dans le système de fichiers. |
FileSaverResult
Le résultat retourné par la méthode SaveAsync
. Cela peut être utilisé pour vérifier si l’enregistrement a réussi, vérifier où le fichier a été enregistré et accéder aux exceptions qui peuvent avoir eu lieu pendant l’enregistrement.
Propriétés
Propriété | Type | Description |
---|---|---|
FilePath | string |
Emplacement sur le disque où le fichier a été enregistré. |
Exception | Exception |
Obtient la valeur Exception si l’opération d’enregistrement échoue. |
IsSuccessful | bool |
Obtient une valeur déterminant si l'opération a réussi. |
Méthodes
méthode | Description |
---|---|
EnsureSuccess | Vérifie si l’opération d’enregistrement a réussi. |
Avertissement
EnsureSuccess
lève une Exception
si l’opération d’enregistrement échoue.
Enregistrement des dépendances
Si vous souhaitez injecter un service, vous devez d’abord l’enregistrer.
Mettez à jour MauiProgram.cs
avec les modifications suivantes :
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.UseMauiCommunityToolkit();
builder.Services.AddSingleton<IFileSaver>(FileSaver.Default);
return builder.Build();
}
}
Vous pouvez maintenant injecter le service comme ceci :
public partial class MainPage : ContentPage
{
private readonly IFileSaver fileSaver;
public MainPage(IFileSaver fileSaver)
{
InitializeComponent();
this.fileSaver = fileSaver;
}
public async void SaveFile(object sender, EventArgs args)
{
using var stream = new MemoryStream(Encoding.Default.GetBytes("Hello from the Community Toolkit!"));
var fileSaverResult = await fileSaver.SaveAsync("test.txt", stream, cancellationToken);
fileSaverResult.EnsureSuccess();
await Toast.Make($"File is saved: {fileSaverResult.FilePath}").Show(cancellationToken);
}
}
Exemples
Vous pouvez trouver un exemple de FileSaver
en action dans l'exemple d'application de la boîte à outils de la communauté .NET MAUI.
API
Vous pouvez trouver le code source deFileSaver
sur le référentiel du kit de ressources de la communauté .NET MAUI sur GitHub.
.NET MAUI Community Toolkit