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});

你可能感兴趣的:(C#之文件管理)