Dosya veya dizin seçici istemleri oluşturma

Dosya veya dizin istemleri, kullanıcıdan bir dosya veya dizin yolu seçmesini istemeye yönelik basit bir kullanıcı arabirimi mekanizmasıdır. Kullanıcıya sorulduğunda, özel iletişim kutusu seçenekleriyle yerel işletim sisteminden kullanıcının özel senaryosuna uyacak şekilde dosya iletişim kutusu oluşturulur.

Dosya veya dizin seçici istemleriyle çalışma

Bu kılavuz, dosya veya dizin seçme istemleriyle çalışmaya yönelik aşağıdaki senaryoları kapsar:

Kullanıcıdan açmak için tek bir dosya seçmesini iste

Dosya açma istemi oluşturmak için ShellExtensibility nesnesinden yöntemini çağırınShowOpenFileDialogAsync.

ShellExtensibility.ShowOpenFileDialogAsync()

ShowOpenFileDialogAsync yöntemi iki parametre alır:

Parametre Türü Zorunlu Açıklama
seçenekler FileDialogOptions Yes İletişim kutusunu özelleştirmek için dosya seçici istemi seçeneklerini tanımlar.
cancellationToken CancellationToken Yes CancellationToken Zaman uyumsuz işlem için. Tetiklendiğinde, istem zorla kapatılır.

ShowOpenFileDialogAsync , kullanıcı iletişim kutusunu kapatır veya iptal ederse döndürür null .

Örnek

içindeki aşağıdaki kod, Command varsayılan iletişim kutusu seçeneklerine sahip bir dosya istemi gösterir.

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

Kullanıcıdan açmak üzere bir veya daha fazla dosya seçmesini iste

Bazı durumlarda, kullanıcıların aynı anda birden fazla dosya seçmesini sağlamak yararlı olur ve bu yöntemle ShowOpenMultipleFilesDialogAsync yapılabilir.

ShellExtensibility.ShowOpenMultipleFilesDialogAsync()

ShowOpenMultipleFilesDialogAsync yöntemi iki parametre alır:

Parametre Türü Zorunlu Açıklama
seçenekler FileDialogOptions Yes İletişim kutusunu özelleştirmek için dosya seçici istemi seçeneklerini tanımlar.
cancellationToken CancellationToken Yes CancellationToken Zaman uyumsuz işlem için. Tetiklendiğinde, istem zorla kapatılır.

ShowOpenMultipleFilesDialogAsync , kullanıcı iletişim kutusunu kapatır veya iptal ederse döndürür null .

Örnek

içindeki aşağıdaki kod, Command varsayılan iletişim kutusu seçeneklerine sahip bir dosya istemi gösterir.

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

Kullanıcıdan Farklı Kaydet'e bir dosya seçmesini iste

Kullanıcıdan Farklı Kaydet'e bir dosya adı istemesi, özel bir dosya adı belirtmesine olanak tanır.

ShellExtensibility.ShowSaveAsFileDialogAsync()

ShowSaveAsFileDialogAsync yöntemi iki parametre alır:

Parametre Türü Zorunlu Açıklama
seçenekler FileDialogOptions Yes İletişim kutusunu özelleştirmek için dosya seçici istemi seçeneklerini tanımlar.
cancellationToken CancellationToken Yes CancellationToken Zaman uyumsuz işlem için. Tetiklendiğinde, istem zorla kapatılır.

ShowSaveAsFileDialogAsync , kullanıcı iletişim kutusunu kapatır veya iptal ederse döndürür null .

Örnek

içindeki aşağıdaki kod, Command varsayılan iletişim kutusu seçeneklerine sahip bir dosya istemi gösterir.

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

Kullanıcıdan açmak için bir dizin seçmesini iste

Dosya açma istemi oluşturmak için ShellExtensibility nesnesinden yöntemini çağırınShowOpenFolderDialogAsync.

ShellExtensibility.ShowOpenFolderDialogAsync()

ShowOpenFolderDialogAsync yöntemi iki parametre alır:

Parametre Türü Zorunlu Açıklama
seçenekler FolderDialogOptions Yes İletişim kutusunu özelleştirmek için dosya seçici istemi seçeneklerini tanımlar.
cancellationToken CancellationToken Yes CancellationToken Zaman uyumsuz işlem için. Tetiklendiğinde, istem zorla kapatılır.

ShowOpenFolderDialogAsync , kullanıcı iletişim kutusunu kapatır veya iptal ederse döndürür null .

Örnek

içindeki aşağıdaki kod, Command varsayılan iletişim kutusu seçeneklerine sahip bir dosya istemi gösterir.

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

Dosya veya dizin istemlerini özelleştirmek için seçenekleri kullanma

FileDialogOptions, DialogFiltersve FolderDialogOptions türleri, istemlerinizi özelleştirmek için kullanılabilir:

FileDialogOptions

Özellik Tür Zorunlu Açıklama Örnek
Başlık string Hayır İletişim kutusunun başlığı. Başlık boş bir dizeyse, sistem "Farklı Kaydet" veya "Aç" olan varsayılan bir başlık kullanır. Varsayılan değer: string.Empty "Dosya aç"
initialFileName string Hayır İletişim kutusunun giriş kutusundaki dosya adı. Açık dosya iletişim kutusu için dosya adı mevcut olmalıdır veya iletişim kutusu bir hata döndürür. Geçersiz bir dosya adı geçirilirse varsayılanı kullanırız. Varsayılan string.Empty değeridir. "filename.ext"
filtreler DialogFilters Hayır İletişim kutusu için kullanılan filtreler. Bkz. Özel seçenekler içeren istem örnekleri

DialogFilters

Süre Tür Zorunlu Açıklama Örnek
Filtreler IReadOnlyCollection<DialogFilter> Yes Dosya seçme veya kaydetme filtreleri. Bkz. Özel seçenekler içeren istem örnekleri
DefaultFilterIndex int Hayır Varsayılan olarak seçilen filtrenin varsayılan filtre dizinini ayarlamak için kullanılır. Varsayılan 0 değeridir. En düşük dizin, 0 en büyük dizin ise değeridir number of filters - 1.

FolderDialogOptions

Özellik Tür Zorunlu Açıklama Örnek
Başlık string Hayır İletişim kutusunun başlığı. Başlık boş bir dizeyse, sistem "Farklı Kaydet" veya "Aç" olan varsayılan bir başlık kullanır. Varsayılan string.Empty değeridir. "Dosya aç"
initialDirectory string Hayır İletişim kutusunun açık olması gereken dizin, mutlak bir yol olmalıdır. initialDirectory boş bir dizeyse, ilk dizin varsayılan olarak son açılan dizin olur. Önceden açılmış bir dizin yoksa, ilk dizin varsayılan olarak kök klasöre ayarlanır. bir initialDirectory belirtilirse, son açılan dizin yerine belirtilen dizine açmak için iletişim kutusuna bir bayrak geçiririz. Geçersiz bir dizin geçirilirse varsayılanı kullanırız. Varsayılan string.Empty değeridir. "path/to/folder"

Özel seçenekler içeren istem örnekleri

Dosya seçici istemi

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

Dizin seçici istemi

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

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

Sonraki adımlar

Ardından Bkz . FilePickerSample.