SavePicker, FilePicker and FolderPicker which support AOT, Packaged/UnPackaged and Elevated Apps.
you can use simple methods which return a string
or List<string>
or you can use Async
methods which return a StorageFile
or StorageFolder
If you want to set DefaultFileType
, you need to set your FileTypeChoices item Key
. for example: picker.DefaultFileType = "Images";
FilePicker
Property
Name |
Options |
OkButtonLabel |
DefaultFileName |
DefaultFileType |
InitialDirectory |
InitialKnownFolder |
Title |
FileTypeChoices |
ShowAllFilesFileType |
PickSingleFile/PickSingleFileAsync
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| var picker = new FilePicker(); picker.Title = "Custom Title"; picker.DefaultFileName = "Default FileName"; picker.DefaultFileType = "*.*"; picker.ShowAllFilesFileType = true; picker.OkButtonLabel = "Custom Confirm"; picker.FileTypeChoices = new Dictionary<string, List<string>> { { "Images", new List<string> { "*.png", "*.jpg", "*.jpeg", "*.bmp", "*.gif" } }, { "Text Files", new List<string> { "*.txt", "*.md", "*.log" } } };
picker.InitialDirectory = @"C:\";
var file = await picker.PickSingleFileAsync(Hwnd); if (file != null) { Txt.Text = file.Path; }
|
PickMultipleFiles/PickMultipleFilesAsync
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| var picker = new FilePicker(); picker.Title = "Custom Title"; picker.DefaultFileName = "Default FileName"; picker.DefaultFileType = "*.*"; picker.ShowAllFilesFileType = true; picker.OkButtonLabel = "Custom Confirm"; picker.FileTypeChoices = new Dictionary<string, List<string>> { { "Images", new List<string> { "*.png", "*.jpg", "*.jpeg", "*.bmp", "*.gif" } }, { "Text Files", new List<string> { "*.txt", "*.md", "*.log" } } };
picker.InitialDirectory = @"C:\";
var files = await picker.PickMultipleFilesAsync(Hwnd); StringBuilder stringBuilder = new StringBuilder(); foreach (var item in files) { stringBuilder.AppendLine(item.Path); } Txt.Text = stringBuilder.ToString();
|
SavePicker
Property
Name |
Options |
OkButtonLabel |
DefaultFileName |
DefaultFileType |
InitialDirectory |
InitialKnownFolder |
Title |
FileTypeChoices |
ShowAllFilesFileType |
PickSaveFile/PickSaveFileAsync
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| var picker = new SavePicker(); picker.Title = "Custom Title"; picker.DefaultFileName = "Default FileName"; picker.DefaultFileType = "*.*"; picker.ShowAllFilesFileType = true; picker.OkButtonLabel = "Custom Confirm"; picker.FileTypeChoices = new Dictionary<string, List<string>> { { "Images", new List<string> { "*.png", "*.jpg", "*.jpeg", "*.bmp", "*.gif" } }, { "Text Files", new List<string> { "*.txt", "*.md", "*.log" } } };
picker.InitialDirectory = @"C:\";
var file = await picker.PickSaveFileAsync(Hwnd); if (file != null) { Txt.Text = file.Path; }
|
FolderPicker
Property
Name |
Options |
OkButtonLabel |
DefaultFileName |
InitialDirectory |
InitialKnownFolder |
Title |
PickSingleFolder/PickSingleFolderAsync
1 2 3 4 5 6 7 8 9 10 11 12 13
| var picker = new FolderPicker(); picker.Title = "Custom Title"; picker.OkButtonLabel = "Custom Confirm"; picker.InitialDirectory = @"C:\";
var file = await picker.PickSingleFolderAsync(Hwnd); if (file != null) { Txt.Text = file.Path; }
|
PickMultipleFolders/PickMultipleFoldersAsync
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| var picker = new FolderPicker(); picker.Title = "Custom Title"; picker.OkButtonLabel = "Custom Confirm"; picker.InitialDirectory = @"C:\";
var files = await picker.PickMultipleFoldersAsync(Hwnd); StringBuilder stringBuilder = new StringBuilder(); foreach (var item in files) { stringBuilder.AppendLine(item.Path); } Txt.Text = stringBuilder.ToString();
|
Demo
you can run demo and see this feature.
