Delen via


Prompts voor bestands- of mapkiezer maken

Vragen over bestanden of mappen zijn een eenvoudig UI-mechanisme om de gebruiker te vragen een bestand of mappad te selecteren. Wanneer de gebruiker wordt gevraagd, creëert het native besturingssysteem een bestanddialoogvenster met aangepaste opties, wat passend is voor het specifieke scenario van de gebruiker.

Werken met prompts voor bestands- of mapkiezer

In dit artikel worden de volgende scenario's beschreven voor het werken met de prompts voor het kiezen van bestanden of mappen:

De gebruiker vragen om één bestand te selecteren dat moet worden geopend

Als u een prompt voor het openen van een bestand wilt maken, roept u de ShowOpenFileDialogAsync methode aan vanuit het ShellExtensibility-object .

ShellExtensibility.ShowOpenFileDialogAsync()

De methode ShowOpenFileDialogAsync heeft twee parameters:

Kenmerk Typologie Verplicht Beschrijving
options FileDialogOptions Ja Hiermee definieert u de promptopties voor bestandskiezer om het dialoogvenster aan te passen.
cancellationToken CancellationToken Ja De CancellationToken voor de asynchrone bewerking. Wanneer deze wordt geactiveerd, wordt de prompt geforceerd gesloten.

Als de gebruiker het dialoogvenster sluit of annuleert, geeft ShowOpenFileDialogAsyncnull terug.

Voorbeeld

De volgende code in een Command bestand toont een bestandsprompt met standaarddialoogvensteropties.

public override async Task ExecuteCommandAsync(IClientContext context, CancellationToken cancellationToken)
{
    FileDialogOptions options = new();
    string? filePath = await this.Extensibility.Shell().ShowOpenFileDialogAsync(options, cancellationToken);
}

De gebruiker vragen een of meer bestanden te selecteren die moeten worden geopend

In sommige gevallen is het handig om gebruikers in staat te stellen meer dan één bestand tegelijk te selecteren, wat u met de ShowOpenMultipleFilesDialogAsync methode kunt doen.

ShellExtensibility.ShowOpenMultipleFilesDialogAsync()

De methode ShowOpenMultipleFilesDialogAsync heeft twee parameters:

Kenmerk Typologie Verplicht Beschrijving
options FileDialogOptions Ja Hiermee definieert u de promptopties voor bestandskiezer om het dialoogvenster aan te passen.
cancellationToken CancellationToken Ja De CancellationToken voor de asynchrone bewerking. Wanneer deze wordt geactiveerd, wordt de prompt geforceerd gesloten.

Als de gebruiker het dialoogvenster sluit of annuleert, geeft ShowOpenMultipleFilesDialogAsyncnull terug.

Voorbeeld

De volgende code in een Command bestand toont een bestandsprompt met standaarddialoogvensteropties.

public override async Task ExecuteCommandAsync(IClientContext context, CancellationToken cancellationToken)
{
    FileDialogOptions options = new();
    IReadOnlyList<string>? filePath = await this.Extensibility.Shell().ShowOpenMultipleFilesDialogAsync(options, cancellationToken);
}

De gebruiker vragen een bestand te selecteren om op te slaan als

Als de gebruiker wordt gevraagd om een bestandsnaam op te slaan met de optie Opslaan als , kunnen ze een aangepaste bestandsnaam opgeven.

ShellExtensibility.ShowSaveAsFileDialogAsync()

De methode ShowSaveAsFileDialogAsync heeft twee parameters:

Kenmerk Typologie Verplicht Beschrijving
options FileDialogOptions Ja Hiermee definieert u de promptopties voor bestandskiezer om het dialoogvenster aan te passen.
cancellationToken CancellationToken Ja De CancellationToken voor de asynchrone bewerking. Wanneer deze wordt geactiveerd, wordt de prompt geforceerd gesloten.

Als de gebruiker het dialoogvenster sluit of annuleert, geeft ShowSaveAsFileDialogAsyncnull terug.

Voorbeeld

De volgende code in een Command bestand toont een bestandsprompt met standaarddialoogvensteropties.

public override async Task ExecuteCommandAsync(IClientContext context, CancellationToken cancellationToken)
{
    FileDialogOptions options = new();
    string? filePath = await this.Extensibility.Shell().ShowSaveAsFileDialogAsync(options, cancellationToken);
}

De gebruiker vragen om een map te selecteren die moet worden geopend

Als u een prompt voor het openen van een bestand wilt maken, roept u de ShowOpenFolderDialogAsync methode aan vanuit het ShellExtensibility-object .

ShellExtensibility.ShowOpenFolderDialogAsync()

De methode ShowOpenFolderDialogAsync heeft twee parameters:

Kenmerk Typologie Verplicht Beschrijving
options FolderDialogOptions Ja Hiermee definieert u de promptopties voor bestandskiezer om het dialoogvenster aan te passen.
cancellationToken CancellationToken Ja De CancellationToken voor de asynchrone bewerking. Wanneer deze wordt geactiveerd, wordt de prompt geforceerd gesloten.

Als de gebruiker het dialoogvenster sluit of annuleert, geeft ShowOpenFolderDialogAsyncnull terug.

Voorbeeld

De volgende code in een Command bestand toont een bestandsprompt met standaarddialoogvensteropties.

public override async Task ExecuteCommandAsync(IClientContext context, CancellationToken cancellationToken)
{
    FolderDialogOptions options = new();
    string? folderPath = await this.Extensibility.Shell().ShowOpenFolderDialogAsync(options, cancellationToken);
}

Opties gebruiken om prompts voor bestanden of mappen aan te passen

U kunt de FileDialogOptions, DialogFiltersen FolderDialogOptions typen gebruiken om uw prompts aan te passen.

FileDialogOptions

Vastgoed Typologie Verplicht Beschrijving Voorbeeld
title string Nee. De titel van het dialoogvenster. Als de titel een lege tekenreeks is, gebruikt het systeem een standaardtitel, ofwel Opslaan als of Openen. De standaardinstelling is string.Empty. "Een bestand openen"
initialFileName string Nee. De bestandsnaam in het invoervak van het dialoogvenster. Voor het dialoogvenster Bestand openen moet de bestandsnaam bestaan of het dialoogvenster retourneert een fout. Als er een ongeldige bestandsnaam wordt doorgegeven, wordt de standaardwaarde gebruikt. De standaardinstelling is string.Empty. "bestandsnaam.ext"
filters DialogFilters Nee. De filters die worden gebruikt voor het dialoogvenster. Zie Voorbeelden van prompts met aangepaste opties.

DialogFilters

Termijn Typologie Verplicht Beschrijving Voorbeeld
Filters IReadOnlyCollection<DialogFilter> Ja De filters voor het selecteren of opslaan van een bestand. Zie Voorbeelden van prompts met aangepaste opties.
DefaultFilterIndex int Nee. Wordt gebruikt om de standaardfilterindex in te stellen van het filter dat standaard is geselecteerd. De standaardinstelling is 0. De minimale index is 0 en het maximum is de number of filters - 1.

FolderDialogOptions

Vastgoed Typologie Verplicht Beschrijving Voorbeeld
title string Nee. De titel van het dialoogvenster. Als de titel een lege tekenreeks is, gebruikt het systeem een standaardtitel, ofwel Opslaan als of Openen. De standaardinstelling is string.Empty. "Een bestand openen"
initialDirectory string Nee. De map waarin het dialoogvenster moet zijn geopend, moet een absoluut pad zijn. Als initialDirectory dit een lege tekenreeks is, wordt de oorspronkelijke map standaard ingesteld op de laatst geopende map. Als er geen eerder geopende map is, wordt de oorspronkelijke map standaard ingesteld op de hoofdmap. Als initialDirectory is opgegeven, wordt een vlag aan het dialoogvenster doorgegeven om de opgegeven map te openen in plaats van de laatst geopende map. Als er een ongeldige map wordt doorgegeven, wordt de standaardwaarde gebruikt. De standaardinstelling is string.Empty. "path/to/folder"

Voorbeelden van prompts met aangepaste opties

Prompt voor bestandskiezer

DialogFilter[] filters = new DialogFilter[]
{
    new DialogFilter("Word Files", ".doc", ".docx"),
    new DialogFilter("Excel Files", ".xls", ".xlsx"),
    new DialogFilter("All Files", ".*"),
};

FileDialogOptions options = new FileDialogOptions()
{
    Title = "Choose a File To Open".
    InitialDirectory = "absolute/path/to/file",
    InitialFileName = "file.txt",
    Filters = new DialogFilters(filters)
    {
        DefaultFilterIndex = 1,
    },
};

string? filePath = await Extensibilty.Shell().ShowOpenFileDialogAsync(options, cancellationToken);

Prompt voor mapkiezer

FolderDialogOptions options = new FolderDialogOptions()
{
    Title = "Choose a Folder",
    InitialDirectory = "absolute/path/to/folder"
};

string? folderPath = await Extensibilty.Shell().ShowOpenFolderDialogAsync(options, cancellationToken);