FileSaver
FileSaver
consente di selezionare una cartella di destinazione e salvare i file nel file system.
Per l'oggetto FileSaver
sono necessarie le precondizioni seguenti:
Se il livello API del dispositivo di destinazione è minore di 33, aggiungere autorizzazioni a AndroidManifest.xml
:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Quando l'app è destinata al livello API Android 34 e versioni successiva, non sono necessarie autorizzazioni aggiuntive.
Per altre informazioni sull'autorizzazione di archiviazione Android, vedere la documentazione di Android relativa a Manifest.permission
Sintassi
C#
Può FileSaver
essere usato come indicato di seguito in 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);
}
}
o nel caso in cui il file sia piuttosto grande e richiede tempo per essere salvato, potrebbe essere interessato a conoscere lo stato di avanzamento:
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);
}
}
Metodi
metodo | Descrizione |
---|---|
SaveAsync | Richiede l'autorizzazione, consente di selezionare una cartella e salvare i file nel file system. |
FileSaverResult
Risultato restituito dal SaveAsync
metodo . Può essere usato per verificare se il salvataggio è stato eseguito correttamente, controllare dove è stato salvato il file e accedere anche a eventuali eccezioni che potrebbero essersi verificate durante il salvataggio.
Proprietà
Proprietà | Type | Descrizione |
---|---|---|
FilePath | string |
Percorso sul disco in cui è stato salvato il file. |
Eccezione | Exception |
Ottiene se Exception l'operazione di salvataggio non riesce. |
IsSuccessful | bool |
Ottiene un valore che determina se l'operazione ha avuto esito positivo. |
Metodi
metodo | Descrizione |
---|---|
EnsureSucces | Verifica se l'operazione di salvataggio è riuscita. |
Avviso
EnsureSuccess
genererà un'eccezione Exception
se l'operazione di salvataggio non riesce.
Registrazione delle dipendenze
Nel caso in cui si voglia inserire un servizio, è prima necessario registrarlo.
Eseguire l'aggiornamento MauiProgram.cs
con le modifiche successive:
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();
}
}
Ora è possibile inserire il servizio come segue:
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);
}
}
Esempi
È possibile trovare un esempio di FileSaver
in azione nell'applicazione di esempio .NET MAUI Community Toolkit.
API
È possibile trovare il codice sorgente per FileSaver
over nel repository GitHub di .NET MAUI Community Toolkit.
.NET MAUI Community Toolkit