C#——文件分割与合并
来源:互联网 发布:淘宝装修日记哪里去了 编辑:程序博客网 时间:2024/06/11 11:20
首先,做文件分割的部分,新建了个winform项目,项目设计如下:
这里有如下控件:
一个OpenFileDialog组件,用于选择要分割的大文件。
一个ProgressBar组件,用以显示文件分割的进度。
一个ComboBox组件,用以选择文件分割的大小。
二个TextBox组件,分别用以显示OpenFileDialog组件选择后的文件和输入分割后小文件存放的目录。
四个Label组件。
然后,给...按钮添加如下代码,当然你还需要using System.IO;
浏览文件openFileDialog1.Title = "请选择要分割的文件名称"; DialogResult drTemp = openFileDialog1.ShowDialog(); if (drTemp == DialogResult.OK && openFileDialog1.FileName != string.Empty) { textBox1.Text = openFileDialog1.FileName; button2.Enabled = true; }
然后给执行按钮添加如下代码:
执行按钮private void button2_Click(object sender, EventArgs e) { int iFileSize = Int32.Parse(comboBox1.Text) * 1024; //根据选择来设定分割的小文件的大小 if (Directory.Exists(textBox2.Text)) Directory.Delete(textBox2.Text, true); //如果计算机存在存放分割文件的目录,则全部删除此目录所有文件 else Directory.CreateDirectory(textBox2.Text); //反之则在计算机创建目录 FileStream SplitFileStream=new FileStream ( textBox1.Text , FileMode.Open ) ; //以文件的全路对应的字符串和文件打开模式来初始化FileStream文件流实例 BinaryReader SplitFileReader=new BinaryReader ( SplitFileStream ) ; //以FileStream文件流来初始化BinaryReader文件阅读器 byte [ ] TempBytes ; //每次分割读取的最大数据 int iFileCount = ( int ) ( SplitFileStream.Length / iFileSize ) ; //小文件总数 progressBar1.Maximum = iFileCount ; if ( SplitFileStream.Length % iFileSize != 0 ) iFileCount++ ; string [ ] TempExtra = textBox1.Text.Split ( '.' ) ; /* 循环将大文件分割成多个小文件 */ for ( int i = 1 ; i <= iFileCount ; i++ ) { string sTempFileName = textBox2.Text + @"\"+i.ToString ( ) .PadLeft ( 4 ,'0' ) + "." + TempExtra[ TempExtra.Length - 1 ] ; //小文件名 //确定小文件的文件名称 FileStream TempStream = new FileStream ( sTempFileName , FileMode.OpenOrCreate ) ; //根据文件名称和文件打开模式来初始化FileStream文件流实例 BinaryWriter TempWriter = new BinaryWriter ( TempStream ) ; //以FileStream实例来创建、初始化BinaryWriter书写器实例 TempBytes = SplitFileReader.ReadBytes ( iFileSize ) ; //从大文件中读取指定大小数据 TempWriter.Write ( TempBytes ) ; //把此数据写入小文件 TempWriter.Close ( ) ; //关闭书写器,形成小文件 TempStream.Close ( ) ; //关闭文件流 progressBar1.Value = i - 1 ; } SplitFileReader.Close ( ) ; //关闭大文件阅读器 SplitFileStream.Close ( ) ; MessageBox.Show ( "分割成功!" ) ; progressBar1.Value = 0 ; }
然后,设置combox的 item ,添加720、1440、2880三个item,就可以了。
阅读全文
0 0
- C#——文件分割与合并
- C#——文件分割与合并2
- c语言之分割与合并文件
- 文件分割与合并
- 文件分割与合并之——split cat
- [IO]——文件的分割与合并
- linux 命令——文件分割与合并 split+cat
- 分割文件与合并文件
- C语言学习笔记之文件的分割与合并
- 文件分割与合并程序
- 文件的合并与分割
- 文件分割与合并例子
- Linux文件分割与合并
- 文件的合并与分割
- 文件分割与合并工具
- 文件的分割与合并
- 文件的分割与合并
- 文件的分割与合并
- STM32->RCC
- Hadoop2.X Yarn框架原理及运作机制
- 关于微信支付第一次成功,后面就不成功的坑。。。。
- BZOJ4169: Lmc的游戏
- Map和Map<key,value>及Map<String, ?>的区别
- C#——文件分割与合并
- 数据结构BinaryTree实例(二):二叉树的中序遍历(递归与非递归)
- 在CentOS 7中安装Redis 3.2.8
- Linux中重置mysql密码
- 创建连续储存数组
- Log4j日志存放位置及相关基础配置
- WebSocket能干啥
- JavaScript实现复制,粘贴,撤销,保存打开文件等操做
- 常规功能和模块自定义系统—062快速架构(quickbuild)开源版发布