FileSaver
FileSaver
bietet die Möglichkeit, den Zielordner auszuwählen und Dateien im Dateisystem zu speichern.
Die folgenden Voraussetzungen sind für den FileSaver
erforderlich:
Wenn ihre Zielgeräte-API eine Ebene kleiner als 33 hat, fügen Sie Berechtigungen für AndroidManifest.xml
hinzu:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Wenn Ihre App auf Android-API der Ebene 34 und höher ausgerichtet ist, sind keine zusätzlichen Berechtigungen erforderlich.
Weitere Informationen zur Android-Speicherberechtigung finden Sie in der Android-Dokumentation zu Manifest.permission
Syntax
C#
FileSaver
kann wie folgt in C# verwendet werden:
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);
}
}
oder falls die Datei ziemlich groß ist und einige Zeit in Anspruch nimmt, um gespeichert zu werden, möchten Sie möglicherweise den Fortschritt sehen:
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);
}
}
Methoden
Methode | Beschreibung |
---|---|
SaveAsync | Fordert Berechtigung an, ermöglicht das Auswählen eines Ordners und das Speichern von Dateien im Dateisystem. |
FileSaverResult
Das Ergebnis, das von der SaveAsync
-Methode zurückgegeben wurde. Dies kann verwendet werden zum Überprüfen, ob das Speichern erfolgreich war, wo die Datei gespeichert wurde und kann auch auf alle Ausnahmen zugreifen, die während des Speicherns aufgetreten sind.
Eigenschaften
Eigenschaft | Typ | BESCHREIBUNG |
---|---|---|
FilePath | string |
Der Speicherort auf dem Datenträger, auf dem die Datei gespeichert wurde. |
Exception | Exception |
Ruft Exception ab, wenn der Speichervorgang fehlschlägt. |
IsSuccessful | bool |
Ruft einen Wert ab, der angibt, ob der Vorgang erfolgreich war. |
Methoden
Methode | Beschreibung |
---|---|
EnsureSuccess | Überprüft, ob der Speichervorgang erfolgreich war. |
Warnung
EnsureSuccess
löst eine Exception
aus, wenn der Speichervorgang nicht erfolgreich ist.
Abhängigkeitsregistrierung
Wenn Sie einen Dienst einfügen möchten, müssen Sie ihn zuerst registrieren.
Aktualisieren Sie MauiProgram.cs
mit den nächsten Änderungen:
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();
}
}
Jetzt können Sie den Dienst wie folgt einfügen:
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);
}
}
Beispiele
Ein konkretes Beispiel für FileSaver
in Aktion finden Sie in der Beispielanwendung für das .NET MAUI Community Toolkit.
API
Sie finden den Quellcode für FileSaver
über das GitHub-Repository für das .NET MAUI Community Toolkit.
.NET MAUI Community Toolkit