c#文件分割与合并 part 2

c#文件分割与合并 part 2

这是合并的部分,我们要让在上一篇文章中被分割的文件再合并起来,建立一个新的项目,相对于上一个项目,只是少了一个combox控件,因为我们要合并文件,所以不需要选择文件大小,设计图如下:

同样,引用system.IO,然后,给浏览按钮添加如下代码:

 


private void button1_Click(object sender, EventArgs e)
        {
            openFileDialog1.Title = "请选择要合并的第一个文件";
            System.Windows.Forms.DialogResult drTemp = openFileDialog1.ShowDialog();
            if (drTemp == DialogResult.OK && openFileDialog1.FileName != "")
            {
                textBox1.Text = openFileDialog1.FileName;
            }
            string[] path = openFileDialog1.FileName.Split(@"\".ToCharArray());
            string sTemp = "";
            int i = 0;
            for (i = 0; i < path.Length - 1; i++)
            {
                sTemp = sTemp + path[i] + @"\";
            }
            button1.Enabled = true;
            sDirectoryName = sTemp;
            //获得文件所在目录

        }

 

再给button2添加如下代码:

 


private void button2_Click(object sender, EventArgs e)
        {
            string[] arrFileNames = Directory.GetFiles(sDirectoryName);
            //获取存放分割后小文件所在目录所在的所有小文件
            int iSumFile = arrFileNames.Length;
            progressBar1.Maximum = iSumFile;
            FileStream AddStream = new FileStream(textBox2.Text, FileMode.OpenOrCreate);
            //以合并后的文件名称和打开方式来创建、初始化FileStream文件流
            BinaryWriter AddWriter = new BinaryWriter(AddStream);
            //以FileStream文件流来初始化BinaryWriter书写器,此用以合并分割的文件
            /*循环合并小文件,并生成合并文件 */
            for (int i = 0; i < iSumFile; i++)
            {
                FileStream TempStream = new FileStream(arrFileNames[i], FileMode.Open);
                //以小文件所对应的文件名称和打开模式来初始化FileStream文件流,起读取分割作用
                BinaryReader TempReader = new BinaryReader(TempStream);
                //用FileStream文件流来初始化BinaryReader文件阅读器,也起读取分割文件作用
                AddWriter.Write(TempReader.ReadBytes((int)TempStream.Length));
                //读取分割文件中的数据,并生成合并后文件
                TempReader.Close();
                //关闭BinaryReader文件阅读器
                TempStream.Close();
                //关闭FileStream文件流
                progressBar1.Value = i + 1;
                //显示合并进程
            }
            AddWriter.Close();
            //关闭BinaryWriter文件书写器
            AddStream.Close();
            //关闭FileStream文件流
            MessageBox.Show("成功合并!");
            progressBar1.Value = 0;
        }

 

编译后运行,我们找到刚才的文件,选择第一个0001.rar,然后进行合并,即可。

然后,可以在输出文件的目录下,看到my.rar了。

作者: Jack Fan初学博闻 of .NET CF/.Net
出处: http://longqi293.cnblogs.com
本博文欢迎大家浏览和转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,在『参考』的文章中,我会表明参考的文章来源,尊重他人版权。若您发现我侵犯了您的版权,请及时与我联系。
知识共享许可协议
本篇博文 by Jack Fan is licensed under a Creative Commons 署名-非商业性使用-相同方式共享 2.5 中国大陆 License.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值