The various file dialogs in WinForms (OpenFileDialog / SaveFileDialog) and WPF (OpenFileDialog / SaveFileDialog) all use file filter strings to control how they filter files. These strings are set in the
Filter property of the various dialogs.
File filter strings are described as follows:
"For each filtering option, the filter string contains a description of the filter, followed by the vertical bar (|) and the filter pattern. The strings for different filtering options are separated by the vertical bar."
Here are some example filter strings:
Text files (*.txt)|*.txt|All files (*.*)|*.*
Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.*
The exact format of these filter strings is sometimes hard to remember, and definitely hard to read.
I've created the FluentFileFilterBuilder library to simplify the task of working with these file filter strings.
Using FluentFileFilterBuilder, the example file filter strings above can be created like so:
var filter = new FileFilterBuilder() .Add("Text files", "txt") .Add("All files", "*") .ToString();
var filter = new FileFilterBuilder() .Add("Image files", "BMP", "JPG", "GIF") .Add("All files", "*") .ToString();
FluentFileFilterBuilder is available on NuGet under the MIT license:
PM> Install-Package FluentFileFilterBuilder
dotnet add package FluentFileFilterBuilder
paket add FluentFileFilterBuilder
I hope you find FluentFileFilterBuilder useful in your WinForms or WPF projects!