Sdílet prostřednictvím


Otevření souborů a složek pomocí nástroje pro výběr

důležitá rozhraní API

Přístup k souborům a složkám tím, že umožníte uživateli interakci s nástrojem pro výběr. K přístupu k souborům můžete použít třídy FileOpenPicker a FileSavePicker a FolderPicker pro přístup ke složce.

Poznámka:

 Pro kompletní ukázku se podívejte na ukázku výběru souboru .

Poznámka:

V desktopové aplikaci (která zahrnuje aplikace WinUI) můžete pro přístup k souborům a výběrům složek použít obor názvů Microsoft.Windows.Storage.Pickers . Tento obor názvů je k dispozici ve Windows App SDK verze 1.8 a novější. Rozhraní API v tomto oboru názvů jsou navržena tak, aby bezproblémově fungovala s aplikacemi WinUI a poskytovala konzistentní uživatelský zážitek napříč různými typy aplikací.

V případě potřeby ale můžete dál používat nástroje pro výběr souborů a složek WinRT z windows.Storage.Pickers. Pokud desktopová aplikace vyžaduje ke spuštění zvýšení oprávnění, budete potřebovat jiný přístup, protože tato rozhraní API nejsou navržená tak, aby se používala v aplikaci se zvýšenými oprávněními. Příklad najdete v tématu FileSavePicker.

Požadavky

Uživatelské rozhraní pro výběr souborů

Výběr souboru zobrazí informace pro orientaci uživatelů a zajištění konzistentního prostředí při otevírání nebo ukládání souborů.

Mezi tyto informace patří:

  • Aktuální umístění
  • Položka nebo položky, které uživatel vybral
  • Strom umístění, na která může uživatel přejít. Tato umístění zahrnují umístění systému souborů, jako je například složka Hudba nebo Stažené soubory, a také aplikace, které implementují kontrakt pro výběr souborů (například Fotoaparát, Fotky a Microsoft OneDrive).

Aplikace pro e-mail může zobrazit nástroj pro výběr souborů, aby uživatel mohl vybrat přílohy.

výběr souboru se dvěma vybranými soubory, které se mají otevřít.

Jak fungují vybírače

Vaše aplikace může prostřednictvím nástroje pro výběr přistupovat k souborům a složkám, procházet je a ukládat v systému uživatele. Aplikace obdrží tyto výběry jako objekty StorageFile a StorageFolder, se kterými pak můžete pracovat.

Nástroj pro výběr používá jedno sjednocené rozhraní, které umožňuje uživateli vybrat soubory a složky ze systému souborů nebo z jiných aplikací. Soubory vybrané z jiných aplikací se podobají souborům ze systému souborů: vrátí se jako objekty StorageFile . Obecně platí, že vaše aplikace s nimi může pracovat stejným způsobem jako jiné objekty. Ostatní aplikace zpřístupňují soubory účastí na kontraktu pro výběr souborů. Pokud chcete, aby vaše aplikace poskytovala soubory, místo pro ukládání nebo aktualizace souborů do jiných aplikací, přečtěte si téma Integrace s kontrakty výběru souborů.

Můžete například vyvolat výběr souboru ve vaší aplikaci, aby uživatel mohl otevřít soubor. Díky tomu bude vaše aplikace volající aplikací. Výběr souboru komunikuje se systémem a/nebo jinými aplikacemi, aby uživatel mohl najít a vybrat soubor. Když uživatel vybere soubor, nástroj pro výběr souboru tento soubor vrátí do vaší aplikace. Tady je postup pro případ, že uživatel zvolí soubor z aplikace poskytující, například OneDrive.

diagramu, který znázorňuje proces jedné aplikace, která získá soubor, který se otevře z jiné aplikace, pomocí nástroje pro výběr souborů jako rozhraní,

Výběr jednoho souboru: kompletní výpis kódu

var picker = new Windows.Storage.Pickers.FileOpenPicker();
picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
picker.FileTypeFilter.Add(".jpg");
picker.FileTypeFilter.Add(".jpeg");
picker.FileTypeFilter.Add(".png");

Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();
if (file != null)
{
    // Application now has read/write access to the picked file
    this.textBlock.Text = "Picked photo: " + file.Name;
}
else
{
    this.textBlock.Text = "Operation cancelled.";
}

Vyberte jeden soubor: krok za krokem

Použití výběru souboru zahrnuje vytvoření a přizpůsobení objektu pro výběr souboru a zobrazení výběru souboru, aby uživatel mohl vybrat jednu nebo více položek.

  1. Vytvoření a přizpůsobení FileOpenPickeru

    var picker = new Windows.Storage.Pickers.FileOpenPicker();
    picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
    picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
    picker.FileTypeFilter.Add(".jpg");
    picker.FileTypeFilter.Add(".jpeg");
    picker.FileTypeFilter.Add(".png");
    

    Nastavte vlastnosti objektu pro výběr souboru, který je relevantní pro uživatele a aplikaci.

    Tento příklad vytvoří bohaté vizuální zobrazení obrázků v pohodlném umístění, ze kterého si uživatel může vybrat nastavením tří vlastností: ViewMode, SuggestedStartLocation a FileTypeFilter.

    • Nastavení ViewMode na PickerViewModehodnotu výčtu vytvoří bohaté vizuální zobrazení pomocí miniatur obrázků, které představují soubory ve výběru souborů. Uděláte to při výběru vizuálních souborů, jako jsou obrázky nebo videa. V opačném případě použijte PickerViewMode.List. Hypotetická e-mailová aplikace s funkcí připojit obrázek nebo video a připojit dokument by před zobrazením výběru souboru nastavovala ViewMode odpovídající funkci.

    • Nastavení SuggestedStartLocation na obrázky pomocí PickerLocationId.PicturesLibrary způsobí, že uživatel začne v místě, kde najde pravděpodobně obrázky. Nastavte SuggestedStartLocation na umístění vhodné pro typ vybraného souboru, například Hudba, Obrázky, Videa nebo Dokumenty. Z počátečního umístění může uživatel přejít na jiná umístění.

    • Použití FileTypeFilter k určení typů souborů udržuje uživatele zaměřené na výběr souborů, které jsou relevantní. Chcete-li nahradit předchozí typy souborů v FileTypeFilter novými položkami, použijte ReplaceAll místo Add.

  2. Zobrazit nástroj pro výběr souborů

    • Výběr jednoho souboru

      Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();
      if (file != null)
      {
          // Application now has read/write access to the picked file
          this.textBlock.Text = "Picked photo: " + file.Name;
      }
      else
      {
          this.textBlock.Text = "Operation cancelled.";
      }
      
    • Výběr více souborů

      var files = await picker.PickMultipleFilesAsync();
      if (files.Count > 0)
      {
          StringBuilder output = new StringBuilder("Picked files:\n");
      
          // Application now has read/write access to the picked file(s)
          foreach (Windows.Storage.StorageFile file in files)
          {
              output.Append(file.Name + "\n");
          }
          this.textBlock.Text = output.ToString();
      }
      else
      {
          this.textBlock.Text = "Operation cancelled.";
      }
      

Výběr složky: kompletní výpis kódu

var folderPicker = new Windows.Storage.Pickers.FolderPicker();
folderPicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.Desktop;
folderPicker.FileTypeFilter.Add("*");

Windows.Storage.StorageFolder folder = await folderPicker.PickSingleFolderAsync();
if (folder != null)
{
    // Application now has read/write access to all contents in the picked folder
    // (including other sub-folder contents)
    Windows.Storage.AccessCache.StorageApplicationPermissions.
    FutureAccessList.AddOrReplace("PickedFolderToken", folder);
    this.textBlock.Text = "Picked folder: " + folder.Name;
}
else
{
    this.textBlock.Text = "Operation cancelled.";
}

Návod

Pokaždé, když aplikace přistupuje k souboru nebo složce pomocí nástroje pro výběr, přidejte ho do seznamu FutureAccessList nebo MostRecentlyUsedList vaší aplikace, abyste ho mohli sledovat. Další informace o používání těchto seznamů najdete v tématu Postup sledování naposledy použitých souborů a složek.

Viz také

Windows.Storage.Pickers

Soubory, složky a knihovny

Integrace se smlouvami pro výběr souborů