WPF下OpenFileDialog实现同一个对话框里打开文件或文件目录

1.WPF方式

Microsoft.Win32.OpenFileDialog openFileDialog = new Microsoft.Win32.OpenFileDialog();
            openFileDialog.Title = "选择文件";
            openFileDialog.Filter = "所有文件(*.*)|*.*";
            openFileDialog.FileName = "选择文件夹.";
            openFileDialog.FilterIndex = 1;
            openFileDialog.ValidateNames = false;
            openFileDialog.CheckFileExists = false;
            openFileDialog.CheckPathExists = true;

 

            openFileDialog.Multiselect = true;//允许同时选择多个文件 

 

            openFileDialog.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory;//指定启动路径

            bool? result = openFileDialog.ShowDialog();
            if (result != true)
            {
                return;
            }
            else
            {
                string[] files = openFileDialog.FileNames;
                foreach (string file in files)
                {
                    System.Windows.MessageBox.Show("已选择文件:" + file, "选择文件提示");
                }

 

1.过滤多个格式

            openFileDialog.Title = "选择图片";
            openFileDialog.Filter = "图片|*.jpg;*.png;*.gif;*.jpeg;*.bmp";

2.过滤其中一种格式

openFileDialog.Title = "选择图片";
            openFileDialog.Filter = "图片|*.jpg|*.png|*.gif|*.jpeg|*.bmp";

                

 

 

重点是下面五个属性,

            openFileDialog.Filter = "所有文件(*.*)|*.*";
            openFileDialog.FileName = "选择文件夹.";//对话框初始化时候填充文件名, 后台根据文件名判断是文件夹还是文件。

            openFileDialog.ValidateNames = false;//控制对话框检查文件名中是否不含有无效的字符或序列
            openFileDialog.CheckFileExists = false; //在对话框返回之前,检查指定文件是否存在
            openFileDialog.CheckPathExists = true; //在对话框返回之前,检查指定路径是否存在
 

功能只能实现打开一种,要么是文件,要么是文件夹,同时打开文件和文件夹功能无法实现!!!

2.winform方式

 System.Windows.Forms.FolderBrowserDialog export_path = new System.Windows.Forms.FolderBrowserDialog();
                if (export_path.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    string files = export_path.SelectedPath;

                }

 

你可能感兴趣的:(WPF)