public static string[] OpenFolderDialog(DirectoryInfo directory, FileFormats formats) { var formatsBuilder = new StringBuilder(); if (formats.HasFlag(FileFormats.MeshFormats)) { formatsBuilder.Append("3D files (*.obj,*.stl )|*.obj;*.stl|"); } if (formats.HasFlag(FileFormats.All)) { formatsBuilder.Append("All files (*.*)|*.*"); } var filter = formatsBuilder.ToString().TrimEnd('|'); var dialog = new Microsoft.Win32.OpenFileDialog(); dialog.InitialDirectory = directory.FullName; dialog.Multiselect = true; dialog.Filter = filter; dialog.DefaultExt = filter; dialog.Title = "Open file"; if (dialog.ShowDialog() == false) { return(null); } return(dialog.FileNames); }