C# Don';t在OpenFileDialog中显示过滤器扩展
为什么不在C# Don';t在OpenFileDialog中显示过滤器扩展,c#,openfiledialog,C#,Openfiledialog,为什么不在OpenFileDialog中显示过滤器扩展名?我对此进行了测试,但是对话框没有显示DAT扩展名。如果我在列表扩展名的第一个中获得DAT扩展名,然后在对话框中过滤OpenFileDialog。我正在WinXP上使用CApplication-framework3.5 这是我的密码: OpenFileDialog openFileDialog = new OpenFileDialog(); string VideoFormat = "Video files |*.wmv; *.3g2;
OpenFileDialog
中显示过滤器扩展名?我对此进行了测试,但是对话框没有显示DAT
扩展名。如果我在列表扩展名的第一个中获得DAT
扩展名,然后在对话框中过滤OpenFileDialog
。我正在WinXP上使用C
Application-framework3.5
这是我的密码:
OpenFileDialog openFileDialog = new OpenFileDialog();
string VideoFormat = "Video files |*.wmv; *.3g2; *.3gp; *.3gp2; *.3gpp; *.amv; *.asf; *.avi; *.bin; *.cue; *.divx; *.dv; *.flv; *.gxf; *.iso; *.m1v; *.m2v; *.m2t; *.m2ts; *.m4v; " +
" *.mkv; *.mov; *.mp2; *.mp2v; *.mp4; *.mp4v; *.mpa; *.mpe; *.mpeg; *.mpeg1; *.mpeg2; *.mpeg4; *.mpg; *.mpv2; *.mts; *.nsv; *.nuv; *.ogg; *.ogm; *.ogv; *.ogx; *.ps; *.rec; *.rm; *.rmvb; *.tod; *.ts; *.tts; *.vob; *.vro; *.webm; *.dat; ";
openFileDialog.Filter = VideoFormat;
openFileDialog.ShowDialog();
但此代码在对话框中过滤了DAT扩展名:
OpenFileDialog openFileDialog = new OpenFileDialog();
string VideoFormat = "Video files | *.dat; *.wmv; *.3g2; *.3gp; *.3gp2; *.3gpp; *.amv; *.asf; *.avi; *.bin; *.cue; *.divx; *.dv; *.flv; *.gxf; *.iso; *.m1v; *.m2v; *.m2t; *.m2ts; *.m4v; " +
" *.mkv; *.mov; *.mp2; *.mp2v; *.mp4; *.mp4v; *.mpa; *.mpe; *.mpeg; *.mpeg1; *.mpeg2; *.mpeg4; *.mpg; *.mpv2; *.mts; *.nsv; *.nuv; *.ogg; *.ogm; *.ogv; *.ogx; *.ps; *.rec; *.rm; *.rmvb; *.tod; *.ts; *.tts; *.vob; *.vro; *.webm; ";
openFileDialog.Filter = VideoFormat;
openFileDialog.ShowDialog();
这是
OpenFileDialog
对象的过滤器属性的正确格式:
(*.jpg)|*.jpg|Image Files (*.png)|*.png|Image Files (*.jpeg)|*.jpeg
试试这个:
OpenFileDialog openFileDialog = new OpenFileDialog();
string formats = "*.dat; *.wmv; *.3g2; *.3gp; *.3gp2; *.3gpp; *.amv; *.asf; *.avi; *.bin; *.cue; *.divx; *.dv; *.flv; *.gxf; *.iso; *.m1v; *.m2v; *.m2t; *.m2ts; *.m4v; " +
" *.mkv; *.mov; *.mp2; *.mp2v; *.mp4; *.mp4v; *.mpa; *.mpe; *.mpeg; *.mpeg1; *.mpeg2; *.mpeg4; *.mpg; *.mpv2; *.mts; *.nsv; *.nuv; *.ogg; *.ogm; *.ogv; *.ogx; *.ps; *.rec; *.rm; *.rmvb; *.tod; *.ts; *.tts; *.vob; *.vro; *.webm";
string[] exts = formats.Split(';');
string filter = string.Empty;
foreach (string ext in exts)
{
filter += "Video Files (" + ext.Replace("*", "").Trim() + ")|" + ext + "|";
}
openFileDialog.Filter = filter.Remove(filter.Length-1,1);
openFileDialog.ShowDialog();
更新
此选项仅显示一个选项,但允许您选择所有视频类型:
OpenFileDialog openFileDialog = new OpenFileDialog();
string formats = "All Videos Files |*.dat; *.wmv; *.3g2; *.3gp; *.3gp2; *.3gpp; *.amv; *.asf; *.avi; *.bin; *.cue; *.divx; *.dv; *.flv; *.gxf; *.iso; *.m1v; *.m2v; *.m2t; *.m2ts; *.m4v; " +
" *.mkv; *.mov; *.mp2; *.mp2v; *.mp4; *.mp4v; *.mpa; *.mpe; *.mpeg; *.mpeg1; *.mpeg2; *.mpeg4; *.mpg; *.mpv2; *.mts; *.nsv; *.nuv; *.ogg; *.ogm; *.ogv; *.ogx; *.ps; *.rec; *.rm; *.rmvb; *.tod; *.ts; *.tts; *.vob; *.vro; *.webm";
openFileDialog.Filter = formats;
openFileDialog.ShowDialog();
它必须是完全一样的。所以,我希望所有的扩展名都在一个文件类型类别“视频文件”下,而不是像:(.jpg)|.jpg,(.png)|.png,…这样的拆分类别中。进行了另一次更新,这将只显示一个选项,但让您选择所有的过滤器。好的,很好,这是我的目标。非常感谢。再次不要筛选上一个扩展名(在本例中:>*.webm)…我刚刚尝试了我的上一个更新,它确实向我显示了webm文件。一定要像我一样拥有它。