C#之文件管理

今天用C#写了一个文件管理的小程序,主要实现了文件上传,文件读取,不同文档之间的对比的功能。

   下面就简单介绍下所用到的C#的类

            (1) FileStream类----- 文件流的读写

          (2)OpenFileDialog类 -------文件对话框

            (3)BitConverter类 -------将字节数组转成基础数据类型

            (4)Encoding.getEncoding("gb2312").getString(byte[],0,lenth);  ---转换字符编码

            (5)Thread      new Thread(new ThreadStart(readInfo)).Start();  ----创建线程

            (6) 不同线程间控件的调用    ------ 控件.invoke(new Action(delegate{  string   } ));

            (7) FileInfo  ---- 获取文件信息


 首先用openDialog类创建一个文件对话框,用于选择文件。

          OpenDialog ofd  = new OpenDialog();

 判断文件选择对话框是否弹出: 

         if(ofd.showdialog()==System.windows.Forms.Dialog.OK)

将选择的文件名称赋于编辑框的文本值:

        textBox.text = ofd.filename

其次,创建一个独立的线程用于读取文件:

       public Thread redataThread=null 

在构造函数中初始化:

      redataThread =    new Thread(readInfo);      注:readInfo是将要在新建的线程中使用的函数

      触发线程:new Thread(new ThreadStart(readinfo)).start();

创建函数readInfo用于读取文件内容:

     读取文件内容主要用到了文件流FileStream fis = new FileStream(filename,fileModer.Open);

     fileModer:对文件的操作模式

通过FileInfo获取文件的基本信息 

      FileInfo fi = new FileInfo(filename);

获取文件的长度:

    fi.length();

定义一个字节数据

   byte[] bt = new byte[1024]

调用read方法读取数据:

   fis.read(bt,0,len);

将字节流转换成需要的字符编码格式:

   Encoding.GetEncoding("gb2312").GetString(bt,0,len);

最后将文本信息显示在文本框中:

由于readInfo方法与文本框不在同一个线程中,所以这里要借用一个Action来调用主线程的文本框:new Action(delegate{ textBox2.text=string});

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值