这篇文章主要为大家详细介绍了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使用线程报错的解决方法
最新资讯
傅盛:与焦虑共生,更以焦虑反抗平庸

傅盛:与焦虑共生,更以焦

2008年,刚满30岁的傅盛离职,张颖看到这个消息,要来电话打
快手收购A站进军二次元,七亿老铁能容得下百万猴子吗?

快手收购A站进军二次

百万“猴子”终于有了新归宿,不是马云爸爸,不是“不站队
苹果WWDC大会发布了什么创新的功能?并没有

苹果WWDC大会发布了什

一场发布会的精彩程度,和演讲者说“isn't that cool”
为什么苹果CEO库克力捧这个10岁小程序员?

为什么苹果CEO库克力

这个有点臭屁、却笑的很腼腆的小孩,用了四年走完了别人
苹果发布新App Store规则:或针对Steam游戏平台

苹果发布新App Store

在拒绝了Steam的iPhone端应用之后,苹果于本周一发布了
拼多多不再低价?至少纸巾品类上是这样

拼多多不再低价?至少纸

以低价起家的拼多多,有望逐渐走出价格洼地。
最新文章
.NET Unity IOC框架使用实例详解

.NET Unity IOC框架使

这篇文章主要为大家详细介绍了.NET Unity IOC框架的使
.net WCF简单实例详解(5)

.net WCF简单实例详解

这篇文章主要为大家详细介绍了.net WCF简单实例,具有一
Visual Studio卸载不完全问题的解决方法

Visual Studio卸载不

这篇文章主要为大家详细介绍了Visual Studio卸载不完
.Net Core使用OpenXML导出、导入Excel

.Net Core使用OpenXML

这篇文章主要为大家详细介绍了.Net Core使用OpenXML导
Visual Studio 2017使用淘宝镜像的方法

Visual Studio 2017使

这篇文章主要介绍了Visual Studio 2017使用淘宝镜像的
.net core下配置访问数据库操作

.net core下配置访问

本篇文章给大家详细分享了在.net core下配置访问数据