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;//输出内容。
}
}
}
}输出结果:
