FileSaver
Program FileSaver
umożliwia wybranie folderu docelowego i zapisanie plików w systemie plików.
Następujące warunki wstępne są wymagane dla elementu FileSaver
:
Jeśli docelowy poziom interfejsu API urządzenia jest mniejszy niż 33, dodaj uprawnienia do usługi AndroidManifest.xml
:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Gdy aplikacja jest przeznaczona dla interfejsu API systemu Android na poziomie 34 i nowszym, nie są wymagane żadne dodatkowe uprawnienia.
Aby uzyskać więcej informacji na temat uprawnień magazynu systemu Android, zapoznaj się z dokumentacją systemu Android dotyczącą manifestu.permission
Składnia
C#
Można FileSaver
go użyć w następujący sposób w języku 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);
}
}
lub w przypadku, gdy plik jest dość duży i zajmuje trochę czasu na zapisanie, możesz być zainteresowany poznaniem postępu:
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);
}
}
Metody
Metoda | opis |
---|---|
SaveAsync | Pyta o uprawnienie, umożliwia wybranie folderu i zapisanie plików w systemie plików. |
FileSaverResult
Wynik zwrócony z SaveAsync
metody . Może to służyć do sprawdzania, czy zapisywanie zakończyło się pomyślnie, sprawdzanie, gdzie plik został zapisany, a także uzyskiwanie dostępu do wszelkich wyjątków, które mogły wystąpić podczas zapisywania.
Właściwości
Właściwości | Type | Opis |
---|---|---|
Filepath | string |
Lokalizacja na dysku, na którym został zapisany plik. |
Wyjątek | Exception |
Pobiera wartość Exception , jeśli operacja zapisywania zakończy się niepowodzeniem. |
IsSuccessful | bool |
Pobiera wartość określającą, czy operacja zakończyła się pomyślnie. |
Metody
Metoda | opis |
---|---|
EnsureSuccess | Sprawdza, czy operacja zapisywania zakończyła się pomyślnie. |
Ostrzeżenie
EnsureSuccess
wyrzuci błąd Exception
, jeśli operacja zapisywania nie powiedzie się.
Rejestracja zależności
Jeśli chcesz wstrzyknąć usługę, najpierw musisz ją zarejestrować.
Zaktualizuj MauiProgram.cs
przy użyciu następnych zmian:
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();
}
}
Teraz możesz wstrzyknąć usługę w następujący sposób:
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);
}
}
Przykłady
Przykład działania FileSaver
można znaleźć w przykładzie przykładowym zestawu narzędzi .NET MAUI Community Toolkit.
interfejs API
Kod źródłowy można FileSaver
znaleźć w repozytorium GitHub zestawu narzędzi .NET MAUI Community Toolkit.
.NET MAUI Community Toolkit