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
- Kullanıcıdan açmak üzere bir veya daha fazla dosya seçmesini iste
- Kullanıcıdan Farklı Kaydet'e bir dosya seçmesini iste
- Kullanıcıdan açmak için bir dizin seçmesini iste
- Dosya veya dizin istemlerini özelleştirmek için seçenekleri kullanma
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
, DialogFilters
ve 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.