这篇文章主要为大家详细介绍了Winform OpenFileDialog打开文件对话框 的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

OpenFileDialog类提供了用户打开文件的功能,它有如下属性:

属性

InitialDirectory:设置对话框的初始目录。

Filter:要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*"。

FilterIndex:在对话框中选择的文件筛选器的索引,如果选第一项就设为1。

RestoreDirectory:控制对话框在关闭之前是否恢复当前目录。

FileName:第一个在对话框中显示的文件或最后一个选取的文件。

Title:将显示在对话框标题栏中的名称。

Multiselect:设置打开对话框可以多选。

1、新建一个Winform窗体应用程序,命名为:OpenFileDialogDemo

2、在界面上添加一个按钮的控件(用于打开文件的窗口),添加日志输出的文本控件(输出最终用户打开的文件的目录、文件名称和文件内容)。

3、后台代码实现:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace OpenFileDialogDemo{  public partial class Form1 : Form  {    public Form1()    {      InitializeComponent();    }    /// <summary>    /// 打开文件按钮单击事件    /// </summary>    /// <param name="sender"></param>    /// <param name="e"></param>    private void btn_OpenFile_Click(object sender, EventArgs e)    {      //定义一个文件打开控件      OpenFileDialog ofd = new OpenFileDialog();      //设置打开对话框的初始目录,默认目录为exe运行文件所在的路径      ofd.InitialDirectory = Application.StartupPath;      //设置打开对话框的标题      ofd.Title = "请选择要打开的文件";      //设置打开对话框可以多选      ofd.Multiselect = true;      //设置对话框打开的文件类型      ofd.Filter = "文本文件|*.txt|音频文件|*.wav|图片文件|*.jpg|所有文件|*.*";      //设置文件对话框当前选定的筛选器的索引      ofd.FilterIndex = 2;      //设置对话框是否记忆之前打开的目录      ofd.RestoreDirectory = true;      if (ofd.ShowDialog() == DialogResult.OK)      {         //获取用户选择的文件完整路径        string filePath = ofd.FileName;        //获取对话框中所选文件的文件名和扩展名,文件名不包括路径        string fileName = ofd.SafeFileName;               OutLog("用户选择的文件目录为:" + filePath);                OutLog("用户选择的文件名称为:"+fileName);        OutLog("**************选中文件的内容**************");        using (FileStream fsRead = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Read))        {          //定义二进制数组          byte[] buffer = new byte[1024 * 1024 * 5];          //从流中读取字节          int r= fsRead.Read(buffer, 0, buffer.Length);          OutLog(Encoding.Default.GetString(buffer,0,r));        }      }    }    /// <summary>    /// 输出日志    /// </summary>    /// <param name="strLog"></param>    private void OutLog(string strLog)    {      //如果日志信息长度超过1000行,则自动清空      if (txt_FileInfo.GetLineFromCharIndex(txt_FileInfo.Text.Length) > 1000)      {        //清空文本        txt_FileInfo.Clear();      }      txt_FileInfo.AppendText(DateTime.Now.ToString("HH:mm:ss ")+strLog+"\r\n");    }  }}

4、生成exe文件测试

5、点击打开文件按钮,打开对话框。默认的目录是exe文件所在的目录:

6、在打开文件的类型中是我们设置的4和类型,默认选中的是第2个音频文件类型:

7、选中要打开的文件后,程序运行效果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持爱安网。

您可能感兴趣的文章:

  • Powershell使用OpenFileDialog打开文件示例
  • C#中OpenFileDialog和PictrueBox的用法分析
  • openfiledialog读取txt写入数据库示例
  • .NET中OpenFileDialog使用线程报错的解决方法
最新资讯
史上最贵iPhone开售未见排队长龙:黄牛只肯加两百

史上最贵iPhone开售未

记者在苹果南京东路店和环贸店看到,两家店门口前来取机
讯飞AI同传被指造假:译员亲自揭发 用人类翻译冒充AI

讯飞AI同传被指造假:译

一场国际会议上,的确出现了“AI同传”,来自知名语音识别
iPhone那么贵的10个秘密 让苹果继续飞一会儿

iPhone那么贵的10个秘

地球上只有两种手机,另一种是非iPhone的。
这届机器人,可以转行拍恐怖片了

这届机器人,可以转行拍

机器人另一大可怕之处,在于其可以变得很强大,并拥有人类
电商向科技公司的质变 贝索斯的世界没有闹钟

电商向科技公司的质变

如果你要创新必须愿意长时间被误解。
梁宁万字长文:美团的破局与开局

梁宁万字长文:美团的破

今天成立了八年的美团在香港上市,市值4000亿港币,约为51
最新文章
.net中捕捉全局未处理异常的三种方式示例

.net中捕捉全局未处理

这篇文章主要给大家介绍了关于.net中捕捉全局未处理异
.NET发送邮件的实现方法示例

.NET发送邮件的实现方

这篇文章主要给大家介绍了关于.NET发送邮件的相关资料
详解CentOS 7.4下如何部署Asp.Net Core结合consul

详解CentOS 7.4下如何

这篇文章主要介绍了详解CentOS 7.4下如何部署Asp.Net
使用NLog给Asp.Net Core做请求监控的方法

使用NLog给Asp.Net Co

这篇文章主要介绍了使用NLog给Asp.Net Core做请求监控
AutoCAD .Net禁止图元被删除的方法

AutoCAD .Net禁止图元

这篇文章主要为大家详细介绍了AutoCAD .Net禁止图元被
ASP.NET MVC中分部视图的应用方法

ASP.NET MVC中分部视

这篇文章主要给大家介绍了关于ASP.NET MVC中分部视图