Sdílet prostřednictvím


FileSaver

Umožňuje FileSaver vybrat cílovou složku a uložit soubory do systému souborů.

Snímek obrazovky fileSaveru v macOS

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í

EnsureSuccessException 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.