Condividi tramite


Salva un file con un selettore

API Importanti

Usa FileSavePicker per consentire agli utenti di specificare il nome e il percorso in cui vuoi che l'app salvi un file.

Annotazioni

 Per un esempio completo, vedere l'esempio di selezione file .

Annotazioni

In un'app desktop (che include le app WinUI), puoi usare lo spazio dei nomi Microsoft.Windows.Storage.Pickers per accedere ai selettori di file e cartelle. Questo spazio dei nomi è disponibile in Windows App SDK versione 1.8 e successive. Le API in questo spazio dei nomi sono progettate per funzionare perfettamente con le app WinUI, offrendo un'esperienza coerente in diversi tipi di app.

Se necessario, è comunque possibile usare i selettore di file e cartelle da Windows.Storage.Pickers. Tuttavia, se l'app desktop richiede l'elevazione dei privilegi per l'esecuzione, è necessario un approccio diverso perché queste API non sono progettate per essere usate in un'app con privilegi elevati. Per un esempio, vedere FileSavePicker.

Prerequisiti

FileSavePicker: passo dopo passo

Usa un FileSavePicker in modo che gli utenti possano specificare il nome, il tipo e il percorso di un file da salvare. Creare, personalizzare e visualizzare un oggetto di selezione file e quindi salvare i dati tramite l'oggetto StorageFile restituito che rappresenta il file selezionato.

  1. Creare e personalizzare 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";
    

    Impostare le proprietà sull'oggetto selettore di file che sono rilevanti per i tuoi utenti e la tua app. Questo esempio imposta tre proprietà: SuggestedStartLocation, FileTypeChoices e SuggestedFileName.

    • Poiché l'utente salva un documento o un file di testo, l'esempio imposta SuggestedStartLocation nella cartella locale dell'app usando LocalFolder. Impostare SuggestedStartLocation su una posizione appropriata per il tipo di file che si sta salvando, ad esempio Musica, Immagini, Video o Documenti. Dal percorso iniziale, l'utente può passare ad altre posizioni.

    • Poiché vogliamo assicurarsi che l'app possa aprire il file dopo il salvataggio, usiamo FileTypeChoices per specificare i tipi di file supportati dall'esempio (documenti e file di testo di Microsoft Word). Assicurarsi che tutti i tipi di file specificati siano supportati dall'app. Gli utenti potranno salvare il file come qualsiasi tipo di file specificato. Possono anche modificare il tipo di file selezionando un altro dei tipi di file specificati. La prima scelta del tipo di file nell'elenco verrà selezionata per impostazione predefinita: per impostare ciò, impostare la proprietà DefaultFileExtension.

    Annotazioni

     La selezione file usa anche il tipo di file attualmente selezionato per filtrare i file visualizzati, in modo che all'utente vengano visualizzati solo i tipi di file corrispondenti ai tipi di file selezionati.

    • Per risparmiare all'utente di digitare troppo, nell'esempio viene impostato un SuggestedFileName. Impostare il nome file suggerito pertinente per il file in fase di salvataggio. Ad esempio, come Word, è possibile suggerire il nome di file esistente se presente o la prima riga di un documento se l'utente salva un file che non ha ancora un nome.

    Annotazioni

      oggetti FileSavePicker visualizzano il selettore di file usando la modalità di visualizzazione PickerViewMode.List.

  2. Mostra FileSavePicker e salva nel file selezionato

    Visualizza il selettore file chiamando PickSaveFileAsync. Dopo che l'utente specifica il nome, il tipo di file e il percorso e conferma di salvare il file, PickSaveFileAsync restituisce un oggetto StorageFile che rappresenta il file salvato. È possibile acquisire ed elaborare questo file ora che si dispone dell'accesso in lettura e scrittura.

    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.";
    }
    

Nell'esempio viene verificato che il file sia valido e ne scriva il nome. Vedere anche Creazione, scrittura e lettura di un file.

Suggerimento

 È consigliabile controllare sempre il file salvato per assicurarsi che sia valido prima di eseguire qualsiasi altra elaborazione. È quindi possibile salvare il contenuto nel file in base alle esigenze dell'app e fornire un comportamento appropriato se il file selezionato non è valido.

Vedere anche

Windows.Storage.Pickers

file, cartelle e librerie

Integrazione con i contratti del selettore di file

Creazione, scrittura e lettura di un file