这篇文章主要为大家详细介绍了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使用线程报错的解决方法
最新资讯
直击|钉钉升级:在“人财物事”推进数字化办公方式

直击|钉钉升级:在“人

钉钉CEO无招表示,钉钉是数字经济时代的企业操作系统,希
外交部召见美大使:立即撤销对中国公民的逮捕令

外交部召见美大使:立即

2018年12月9日,中国外交部副部长乐玉成紧急召见美国驻
爱奇艺公布2019战略:原创内容和垂直领域成发力重点

爱奇艺公布2019战略:原

近日,爱奇艺公布2019年战略,原创内容和垂直细领域将成发
“嫩模女友”等15个恶意程序变种曝光:名称带诱惑性

“嫩模女友”等15个恶

国家互联网应急中心近日发现15个恶意扣费类的恶意程序
iPhone采用率报告公布 XS/Max/XR销量不尽人意

iPhone采用率报告公布

如果比较发售后相同时间内的采用率,5周后,iPhone XR为1.
谢继军:科创板不会成为另外一个新三板

谢继军:科创板不会成为

他认为科创板不会成为另外一个新三板,这个是交易上的不
最新文章
IdnentiyServer使用客户端凭据访问API的实例代码

IdnentiyServer使用客

这篇文章主要介绍了IdnentiyServer-使用客户端凭据访
.Net Core在程序的任意位置使用和注入服务的方法

.Net Core在程序的任

这篇文章主要介绍了.Net Core在程序的任意位置使用和
ASP.NET Core使用自定义验证属性控制访问权限详解

ASP.NET Core使用自定

这篇文章主要给大家介绍了关于ASP.NET Core使用自定义
asp net core2.1如何使用jwt从原理到精通(二)

asp net core2.1如何

这篇文章主要给大家介绍了关于asp net core2.1如何使
.NET使用.NET Core CLI开发应用程序

.NET使用.NET Core CL

这篇文章主要为大家详细介绍了.NET使用.NET Core CLI
.NET Core WebApi中如何实现多态数据绑定实例代码

.NET Core WebApi中如

这篇文章主要给大家介绍了关于.NET Core WebApi中如何