Dela via


Spara en fil med en filväljare

viktiga API:er

Använd FileSavePicker för att låta användarna ange namnet och platsen där de vill att appen ska spara en fil.

Anmärkning

 Se det fullständiga exemplet i filväljarexemplet .

Anmärkning

I en skrivbordsapp (som innehåller WinUI-appar) kan du använda namnområdet Microsoft.Windows.Storage.Pickers för att komma åt fil- och mappväljarna. Det här namnområdet är tillgängligt i Windows App SDK version 1.8 och senare. API:erna i det här namnområdet är utformade för att fungera sömlöst med WinUI-appar, vilket ger en konsekvent upplevelse för olika apptyper.

Om det behövs kan du fortfarande använda fil- och mappväljare från Windows.Storage.Pickers. Men om skrivbordsappen kräver administratörsbehörighet behöver du en annan metod eftersom dessa API:er inte är utformade för att användas i ett program med förhöjda behörigheter. Ett exempel finns i FileSavePicker.

Förutsättningar

FileSavePicker: steg för steg

Använd en FileSavePicker- så att användarna kan ange namn, typ och plats för en fil som ska sparas. Skapa, anpassa och visa ett filväljareobjekt och spara sedan data via det returnerade StorageFile- objekt som representerar den fil som valts.

  1. Skapa och anpassa FileSavePicker-

    var savePicker = new Windows.Storage.Pickers.FileSavePicker();
    savePicker.SuggestedStartLocation =
        Windows.Storage.Pickers.PickerLocationId.DocumentsLibrary;
    // Dropdown of file types the user can save the file as
    savePicker.FileTypeChoices.Add("Plain Text", new List<string>() { ".txt" });
    // Default file name if the user does not type one in or select a file to replace
    savePicker.SuggestedFileName = "New Document";
    

    Ange egenskaper för filväljarens objekt som är relevanta för dina användare och din app. I det här exemplet anges tre egenskaper: SuggestedStartLocation, FileTypeChoices och SuggestedFileName.

    • Eftersom användaren sparar ett dokument eller en textfil sätter exempeluppsättningarna SuggestedStartLocation till appens lokala mapp med hjälp av LocalFolder. Ange SuggestedStartLocation till en plats som är lämplig för den typ av fil som sparas, till exempel Musik, Bilder, Videor eller Dokument. Från startplatsen kan användaren navigera till andra platser.

    • Eftersom vi vill se till att vår app kan öppna filen när den har sparats använder vi FileTypeChoices för att ange filtyper som exemplet stöder (Microsoft Word-dokument och textfiler). Kontrollera att alla filtyper som du anger stöds av din app. Användarna kommer att kunna spara sin fil som någon av de filtyper som du anger. De kan också ändra filtypen genom att välja en annan av de filtyper som du har angett. Det första filtypsvalet i listan väljs som standard: om du vill kontrollera det anger du egenskapen DefaultFileExtension.

    Anmärkning

     Filväljaren använder också den valda filtypen för att filtrera vilka filer som visas, så att endast filtyper som matchar de valda filtyperna visas för användaren.

    • För att spara användaren lite skrivarbete sätter exemplet en SuggestedFileName. Gör ditt föreslagna filnamn relevant för filen som sparas. Som Word kan du till exempel föreslå det befintliga filnamnet om det finns ett eller den första raden i ett dokument om användaren sparar en fil som ännu inte har något namn.

    Anmärkning

      FileSavePicker-objekt visar filväljaren med hjälp av PickerViewMode.List visningsläge.

  2. Visa FileSavePicker och spara i den plockade filen

    Visa filväljaren genom att anropa PickSaveFileAsync. När användaren har specificerat namn, filtyp och plats och bekräftar att filen ska sparas returnerar PickSaveFileAsync ett StorageFile- objekt som representerar den sparade filen. Du kan samla in och bearbeta den här filen nu när du har läs- och skrivåtkomst till den.

    Windows.Storage.StorageFile file = await savePicker.PickSaveFileAsync();
    if (file != null)
    {
        // Prevent updates to the remote version of the file until
        // we finish making changes and call CompleteUpdatesAsync.
        Windows.Storage.CachedFileManager.DeferUpdates(file);
        // write to file
        await Windows.Storage.FileIO.WriteTextAsync(file, "file contents");
        // Let Windows know that we're finished changing the file so
        // the other app can update the remote version of the file.
        // Completing updates may require Windows to ask for user input.
        Windows.Storage.Provider.FileUpdateStatus status =
            await Windows.Storage.CachedFileManager.CompleteUpdatesAsync(file);
        if (status == Windows.Storage.Provider.FileUpdateStatus.Complete)
        {
            this.textBlock.Text = "File " + file.Name + " was saved.";
        }
        else
        {
            this.textBlock.Text = "File " + file.Name + " couldn't be saved.";
        }
    }
    else
    {
        this.textBlock.Text = "Operation cancelled.";
    }
    

Exemplet kontrollerar att filen är giltig och skriver sitt eget filnamn till den. Se även Skapa, skriva och läsa en fil.

Tips/Råd

 Du bör alltid kontrollera den sparade filen för att se till att den är giltig innan du utför någon annan bearbetning. Sedan kan du spara innehåll i filen efter behov för din app och ange lämpligt beteende om den plockade filen inte är giltig.

Se även

Windows.Storage.Pickers

Filer, mappar och bibliotek

Integrera med filväljarkontrakt

Skapa, skriva och läsa en fil