FileSaver
Umožňuje FileSaver
vybrat cílovou složku a uložit soubory do systému souborů.
Následující předpoklady jsou vyžadovány pro FileSaver
:
Pokud je úroveň rozhraní API cílového zařízení menší než 33, přidejte oprávnění k AndroidManifest.xml
:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Když vaše aplikace cílí na rozhraní ANDROID API úrovně 34 a vyšší, nevyžaduje se žádná další oprávnění.
Další informace o oprávněních k úložišti Androidu najdete v dokumentaci k Androidu o manifest.permission.
Syntaxe
C#
V FileSaver
jazyce C# je možné ho použít následujícím způsobem:
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);
}
}
nebo v případě, že je soubor poměrně velký a nějakou dobu trvá, než se uloží, může vás zajímat průběh:
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 | Popis |
---|---|
SaveAsync | Žádá o oprávnění, umožňuje vybrat složku a ukládat soubory do systému souborů. |
FileSaverResult
Výsledek vrácený z SaveAsync
metody. Můžete ho použít k ověření, jestli uložení proběhlo úspěšně, zkontrolovat, kam byl soubor uložen, a také získat přístup k výjimkám, ke kterým mohlo dojít během ukládání.
Vlastnosti
Vlastnost | Type | Popis |
---|---|---|
Filepath | string |
Umístění na disku, na kterém byl soubor uložen. |
Výjimka | Exception |
Exception Získá, pokud operace uložení selže. |
IsSuccessful | bool |
Získá hodnotu určující, zda operace byla úspěšná. |
Metody
metoda | Popis |
---|---|
Zajistit, aby se zajistilo, že se vám to bude chytět. | Ověří, jestli operace uložení proběhla úspěšně. |
Upozorňující
EnsureSuccess
Exception
vyvolá chybu, pokud operace uložení není úspěšná.
Registrace závislostí
Pokud chcete službu vložit, musíte ji nejprve zaregistrovat.
Aktualizujte MauiProgram.cs
následujícími změnami:
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();
}
}
Teď můžete službu vložit takto:
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);
}
}
Příklady
Příklad FileSaver
akce najdete v ukázkové aplikaci .NET MAUI Community Toolkit.
rozhraní API
Zdrojový kód FileSaver
najdete v úložišti .NET MAUI Community Toolkit na GitHubu.
.NET MAUI Community Toolkit