Erstellen von Eingabeaufforderungen für die Datei- oder Verzeichnisauswahl

Datei- oder Verzeichnisaufforderungen sind ein einfacher Mechanismus der Benutzeroberfläche, mit dem der Benutzer aufgefordert wird, einen Datei- oder Verzeichnispfad auszuwählen. Durch die Aufforderung des Benutzers wird das Dateidialogfeld aus dem systemeigenen Betriebssystem mit benutzerdefinierten Dialogfeldoptionen erstellt, die auf das spezifische Szenario des Benutzers abgestimmt sind.

Arbeiten mit Prompts zur Datei- oder Verzeichnisauswahl

In diesem Handbuch werden die folgenden Szenarien für das Arbeiten mit den Eingabeaufforderungen für die Datei- oder Verzeichnisauswahl behandelt:

Aufforderung an den Benutzer, eine einzelne Datei zum Öffnen auszuwählen

Rufen Sie die ShowOpenFileDialogAsync-Methode aus dem ShellExtensibility-Objekt auf, um eine Aufforderung zum Öffnen einer Datei zu erstellen.

ShellExtensibility.ShowOpenFileDialogAsync()

Die Methode ShowOpenFileDialogAsync akzeptiert zwei Parameter:

Parameter Type Erforderlich Beschreibung
Optionen FileDialogOptions Ja Definiert die Prompt-Optionen für die Dateiauswahl, um das Dialogfeld anzupassen.
cancellationToken CancellationToken Ja Der CancellationToken für den asynchrone Operation. Bei Auslösung wird das Schließen des Prompts erzwungen.

ShowOpenFileDialogAsync gibt null zurück, wenn der Benutzer das Dialogfeld schließt oder abbricht.

Beispiel

Der folgende Code in Command zeigt einen Datei-Prompt mit Standarddialogoptionen.

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

Aufforderung an den Benutzer, eine oder mehrere Dateien zum Öffnen auszuwählen

In einigen Fällen ist es hilfreich, Benutzern die Auswahl mehrerer Dateien gleichzeitig zu ermöglichen, was mit der ShowOpenMultipleFilesDialogAsync-Methode erfolgen kann.

ShellExtensibility.ShowOpenMultipleFilesDialogAsync()

Die Methode ShowOpenMultipleFilesDialogAsync akzeptiert zwei Parameter:

Parameter Type Erforderlich Beschreibung
Optionen FileDialogOptions Ja Definiert die Prompt-Optionen für die Dateiauswahl, um das Dialogfeld anzupassen.
cancellationToken CancellationToken Ja Der CancellationToken für den asynchrone Operation. Bei Auslösung wird das Schließen des Prompts erzwungen.

ShowOpenMultipleFilesDialogAsync gibt null zurück, wenn der Benutzer das Dialogfeld schließt oder abbricht.

Beispiel

Der folgende Code in Command zeigt einen Datei-Prompt mit Standarddialogoptionen.

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

Aufforderung an den Benutzer, eine Datei zum Speichern unter auszuwählen

Durch die Aufforderung zur Eingabe eines Dateinamens für „Speichern unter“ kann der Benutzer einen eigenen Dateinamen angeben.

ShellExtensibility.ShowSaveAsFileDialogAsync()

Die Methode ShowSaveAsFileDialogAsync akzeptiert zwei Parameter:

Parameter Type Erforderlich Beschreibung
Optionen FileDialogOptions Ja Definiert die Prompt-Optionen für die Dateiauswahl, um das Dialogfeld anzupassen.
cancellationToken CancellationToken Ja Der CancellationToken für den asynchrone Operation. Bei Auslösung wird das Schließen des Prompts erzwungen.

ShowSaveAsFileDialogAsync gibt null zurück, wenn der Benutzer das Dialogfeld schließt oder abbricht.

Beispiel

Der folgende Code in Command zeigt einen Datei-Prompt mit Standarddialogoptionen.

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

Aufforderung an den Benutzer, ein Verzeichnis zum Öffnen auszuwählen

Rufen Sie die ShowOpenFolderDialogAsync-Methode aus dem ShellExtensibility-Objekt auf, um eine Aufforderung zum Öffnen einer Datei zu erstellen.

ShellExtensibility.ShowOpenFolderDialogAsync()

Die Methode ShowOpenFolderDialogAsync akzeptiert zwei Parameter:

Parameter Type Erforderlich Beschreibung
Optionen FolderDialogOptions Ja Definiert die Prompt-Optionen für die Dateiauswahl, um das Dialogfeld anzupassen.
cancellationToken CancellationToken Ja Der CancellationToken für den asynchrone Operation. Bei Auslösung wird das Schließen des Prompts erzwungen.

ShowOpenFolderDialogAsync gibt null zurück, wenn der Benutzer das Dialogfeld schließt oder abbricht.

Beispiel

Der folgende Code in Command zeigt einen Datei-Prompt mit Standarddialogoptionen.

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

Optionen zum Anpassen der Datei- oder Verzeichnisaufforderungen verwenden

Die FileDialogOptions-, DialogFilters- und FolderDialogOptions-Typen können verwendet werden, um Ihre Eingabeaufforderungen anzupassen:

FileDialogOptions

Eigenschaft Typ Erforderlich Beschreibung Beispiel
title string No Der Titel des Dialogs. Wenn der Titel eine leere Zeichenkette ist, verwendet das System einen Standardtitel, der entweder „Speichern unter“ oder „Öffnen“ lautet. Der Standardwert ist string.Empty „Öffnen Sie eine Datei“
initialFileName string No Der Dateiname im Eingabefeld des Dialogfelds. Für das Dialogfeld „Datei öffnen“ muss der Dateiname vorhanden sein, oder das Dialogfeld gibt einen Fehler zurück. Wenn ein ungültiger Dateiname übergeben wird, verwenden wir die Standardeinstellung. Der Standardwert ist string.Empty. „filename.ext“
filters DialogFilters No Die Filter, die für das Dialogfeld verwendet werden. Siehe Beispiele für Prompts mit benutzerdefinierten Optionen

DialogFilters

Begriff Typ Erforderlich Beschreibung Beispiel
Filter IReadOnlyCollection<DialogFilter> Ja Die Filter zum Auswählen oder Speichern einer Datei. Siehe Beispiele für Prompts mit benutzerdefinierten Optionen
DefaultFilterIndex int No Wird verwendet, um den Standardfilterindex des Filters festzulegen, der standardmäßig ausgewählt ist. Der Standardwert ist 0. Der Minimumindex beträgt 0 und das Maximum ist number of filters - 1.

FolderDialogOptions

Eigenschaft Typ Erforderlich Beschreibung Beispiel
title string No Der Titel des Dialogs. Wenn der Titel eine leere Zeichenkette ist, verwendet das System einen Standardtitel, der entweder „Speichern unter“ oder „Öffnen“ lautet. Der Standardwert ist string.Empty. „Öffnen Sie eine Datei“
initialDirectory string No Das Verzeichnis, das das Dialogfeld geöffnet haben sollte, was ein absoluter Pfad sein sollte. Wenn das initialDirectory eine leere Zeichenkette ist, wird standardmäßig das ursprüngliche Verzeichnis als zuletzt geöffnetes Verzeichnis verwendet. Wenn kein zuvor geöffnetes Verzeichnis vorhanden ist, wird das ursprüngliche Verzeichnis standardmäßig im Stammordner gespeichert. Wenn ein initialDirectory angegeben ist, übergeben wir ein Flag an das Dialogfeld, um das angegebene Verzeichnis anstelle des zuletzt geöffneten Verzeichnisses zu öffnen. Wenn ein ungültiges Verzeichnis übergeben wird, verwenden wir die Standardeinstellung. Der Standardwert ist string.Empty. „Pfad/Zu/Ordner“

Beispiele für Eingabeaufforderungen mit benutzerdefinierten Optionen

Eingabeaufforderung für die Dateiauswahl

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);

Eingabeaufforderung für die Verzeichnisauswahl

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

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

Nächste Schritte

Sehen Sie sich als Nächstes das FilePickerSample an.