父类
父类是 FileDialog
父类的属性、方法,详见:
https://www.malaoshi.top/show_1GWixWFqGAt.html
属性
- Filter: 获取或设置当前文件名筛选器字符串,例如,
文本文件(*.txt)|*.txt|所有文件(*.*)||*.* - Multiselect:为
true表示允许选择多个文件 - ValidateNames:验证用户输入是否是一个有效的Windows文件名
- CheckFileExists:验证文件是否存在,不存在提示下面创建:

- CheckPathExists:验证路径是否存在
其他属性
- InitialDirectory:对话框的初始目录
- FilterIndex 在对话框中选择的文件筛选器的索引,如果选第一项就设为1
- RestoreDirectory 控制对话框在关闭之前是否恢复当前目录
- FileName:第一个在对话框中显示的文件或最后一个选取的文件
- Title 将显示在对话框标题栏中的字符
- AddExtension 是否自动添加默认扩展名
- DefaultExt 默认扩展名
- DereferenceLinks 在从对话框返回前是否取消引用快捷方式
- ShowHelp 启用”帮助”按钮
- ValiDateNames 控制对话框检查文件名中是否不含有无效的字符或序列
文件名
FileName:获取选定的文件名(包含全路径);设置选定的文件
FileNames:当
Multiselect为true,通过该属性获取所有选定的文件名SafeFileName:获取选定对话框中的文件名和扩展名。文件名不包含路径
SafeFileNames:当
Multiselect为true,获取所有选定的文件名和扩展名。文件名不包含路径
常用事件
- FileOk:当用户点击”打开”或”保存”按钮时要处理的事件
例子:打开一个文件
private void openFileDialogBTN_Click(object sender, System.EventArgs e)
{
OpenFileDialog openFileDialog=new OpenFileDialog();
openFileDialog.InitialDirectory="c:\\";//指定初始化路径,第一次打开默认在该路径下
openFileDialog.Filter="文本文件|*.*|C#文件|*.cs|所有文件|*.*";
openFileDialog.RestoreDirectory=true; // 下次打开时,是上次的路径
openFileDialog.FilterIndex=1;
if (openFileDialog.ShowDialog()==DialogResult.OK)
{
fName=openFileDialog.FileName; // 获取选中的文件名,只有一个文件
File fileOpen=new File(fName);
isFileHaveName=true;
richTextBox1.Text=fileOpen.ReadFile();
richTextBox1.AppendText("");
}
}
例子:打开word文档
打开 .docx 文件
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "word文档(*.docx)|*.docx";
ofd.Multiselect = true;
ofd.ValidateNames = true; // 验证用户输入是否是一个有效的Windows文件名
ofd.CheckFileExists = true; //验证路径的有效性
ofd.CheckPathExists = true;//验证路径的有效性
if (ofd.ShowDialog() == DialogResult.OK) //用户点击确认按钮,发送确认消息
{
//FileNames 获取在文件对话框中选定的所有文件
foreach (var fileName in ofd.FileNames)
{
//System.Diagnostics.Trace.WriteLine(fileName);
if (!fileLstBx.Items.Contains(fileName))
{
fileLstBx.Items.Add(fileName);
}
}
}
过滤
一行过滤,一个过滤,支持多个后缀(推荐)
描述和扩展名由 | 间隔
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "常见文档|*.doc;*.docx;*.xls;*.xlsx;*.ppt;*.pptx;*.pdf;*.txt|" +
"Word文档|*.doc;*.docx|"+
"Excel文档|*.xls;*.xlsx|"+
"PPT文档|*.ppt;*.pptx";
一行过滤,多个过滤
描述和扩展名由 | 间隔
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "word文档(*.docx),pdf文档(*.pdf),文本文件(*.txt)|*.docx;*.pdf;*.txt"
多条过滤
多个过滤也是由 | 间隔
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "word文档(*.docx),pdf文档(*.pdf),文本文件(*.txt)|*.docx;*.pdf;*.txt|"
"word文档(*.doc),word文档(*.docx)|*.doc;*.docx;";
参考:
https://www.cnblogs.com/tinaluo/p/6636073.html
https://blog.csdn.net/weixin_44448313/article/details/102820439


