File Dialog Filter Builder






2.64/5 (4 votes)
Helper class for building filter string for Windows file dialogs
Introduction
The Windows file dialogs provide the Filter
property to specify which kinds of files should be shown in the dialog. The syntax is pretty simple, but there is still scope to make a mistake and "create" a bug (with typo for example).
Using the Code
The FileDialogFilterBuilder
class uses the FilterInfo
structure for every filter item. The FilterInfo
structure contains all information about one filter item. Using these two types are pretty simple and intuitive:
// Create builder
FileDialogFilterBuilder filterBuilder = new FileDialogFilterBuilder();
// add filter item for Word documents
filterBuilder.Infos.Add( new FilterInfo( "Word", "doc", "docx", "rtf" ) );
// add filter item for Excel documents
filterBuilder.Infos.Add( new FilterInfo( "Excel", "xls", "xlsx", "csv" ) );
// create filter item for images
FilterInfo infoImages = new FilterInfo( "Images" );
// these extensions will be used by dialog for filtering files
infoImages.Extensions = new string[]
{ "bmp", "jpg", "gif", "jpeg", "png", "wmf", "emf", "ico" };
// these extensions will be displayed to user with item
infoImages.VisibleExtensions = new string[] { "bmp", "jpg", "gif" };
// add item to builder
filterBuilder.Infos.Add( infoImages );
// add item with no-filter, with title "All file types"
filterBuilder.AddAllFileTypes( "All file types" );
using ( OpenFileDialog ofd = new OpenFileDialog() ) {
// method "ToFilterString()" builds the filter string with correct syntax
ofd.Filter = filterBuilder.ToFilterString();
ofd.ShowDialog( this );
}
That's all.
History
- 1st August, 2007: Initial post