用FileStream来复制文件

一个用FileStream来复制文件的小程序


相比用File.Copy()方法,我觉得有两个好处
1:可以实时显示文件进度
2:当文件拷贝到一半发生异常时不会造成目标文件不可用,(用FileStream,文件可播放已拷贝部分的片段)


贴上代码:

 1       private void button1_Click(object sender, EventArgs e)
 2        {
 3            FileStream fsr = null;
 4            FileStream fsw = null;
 5            try
 6            {
 7                this.progressBar1.Maximum =100;
 8                fsr = new FileStream(this.textBox1.Text, FileMode.Open);
 9                fsw = new FileStream(this.textBox2.Text, FileMode.Create);
10                byte[] bt = new byte[1024*1024];
11                int rcount = 0;
12                do
13                {
14                    Application.DoEvents();
15                    rcount = fsr.Read(bt, 0, bt.Length);
16                    fsw.Write(bt, 0, rcount);
17                    //this.progressBar1.Value = Convert.ToInt32(fsw.Length);
18                    this.progressBar1.Value = ((int)(((float)fsw.Length / (float)fsr.Length)*100 )) ;
19                    Application.DoEvents();
20                }
 while (rcount != 0);
21                fsr.Close();
22                fsw.Close();
23            }

24            catch (Exception ex)
25            {
26                if (fsr != null)
27                {
28                    fsr.Close();
29                    fsr = null;
30                }

31                if (fsw != null)
32                {
33                    fsw.Close();
34                    fsw = null;
35                }

36                MessageBox.Show(ex.ToString());
37            }

38        }

39
posted @ 2008-05-13 09:11  陈旭85  阅读(399)  评论(0编辑  收藏  举报