C# 文件打开器,文本文档,图片
C# 文件打开器,文本文档,图片
今天,没事复习复习前面所学的知识,就做了一个简单的文件打开器,目前只做了打开文本文档和图片,理论上可以做一个简单万能打开器。
首先先打开文件,再判断扩展名,调用相关打开方法。
窗体默认打开 隐藏控件,比如:文本框和图片框。
打开相应文件时显示对应文本框,即可。
等这两天学习了视频播放,在想想办法添加 音乐播放和视频播放功能。
设计界面:
完整代码:
using System; using System.Drawing; using System.IO; using System.Text; using System.Windows.Forms; namespace 文件打开器 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } string path = @".\";//路径 string extension;//扩展名 private void Form1_Load(object sender, EventArgs e) { pic.Visible = false;//隐藏图片框 txtOpen.Visible = false;//隐藏文本框 } private void btnOpen_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog();//提示用户打开文件 ofd.Title = "请选择要打开的文件";//标题 ofd.Filter = "文本文档(*.txt)|*.txt|图片(*.png)|*.png|图片(*.jpg)|*.jpg|图片(*.gif)|*.gif|所有文件(*.*)|*.*";//扩展名 if (ofd.ShowDialog() != DialogResult.OK)//判断是否点击OK键 { MessageBox.Show("请选择要打开的文件。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);//提示 return; } path = ofd.FileName;//获取打开文件的路径 txtPath.Text = path;//路径文本框显示路径 //extension = path.Substring(path.LastIndexOf('.'));//使用截取字符串 获取扩展名,第一种方法 extension = Path.GetExtension(path);//使用路径信息活动扩展名。 第二种方法 switch (extension)//判断 { case ".txt": pic.Visible = false;//图片框隐藏 txtOpen.Visible = true;//文本框显示 GetTxt();//调用 读取文本文档 方法 break; case ".png": case ".jpg": case ".gif": pic.Visible = true;//图片框显示 txtOpen.Visible = false;//文本框隐藏 pic.Image = Image.FromFile(path);//将图片显示在图片框上 break; default: MessageBox.Show("未知文件", "未知", MessageBoxButtons.OK, MessageBoxIcon.Error);//提示 break; } } void GetTxt()//读取文本文档 方法 { using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read))//读取 { string str = "";//变量 while (true) { byte[] buffer = new byte[1024 * 1024 * 1];//byte数组 int r = fs.Read(buffer, 0, buffer.Length);//读取文本内容,保存byte数组中,并返回读取总字节数 if (r == 0)//判断是否为0 { break;//为0 则退出循环 } str += Encoding.UTF8.GetString(buffer, 0, r);//将读取数据转换为字符串 } txtOpen.Clear();//清空文本框 txtOpen.Text = str;//输出内容。 } } } }
输出结果: