C#文件的拆分与合并操作示例
C#文件的拆分与合并操作示例代码。

全局变量定义
int size=;//文件大小
//拆分、合并的文件数
int count;
FileInfo splitFile;
string splitFliePath;
FileStream splitFileStream; FileInfo joinFile;
string joinFliePath;
FileStream joinFileStream;
拆分文件操作
private void CheckSplit_Click(object sender, EventArgs e)
{
OpenFileDialog fd = new OpenFileDialog();
if (fd.ShowDialog() == DialogResult.OK)
{
txtFilePath.Text = fd.FileName;
splitFile = new FileInfo(fd.FileName);
splitFliePath = splitFile.FullName.Substring(, splitFile.FullName.Length - fd.SafeFileName.Length);
splitFileStream = new FileStream(splitFile.FullName, FileMode.Open, FileAccess.Read);
}
}
private void btnSplit_Click(object sender, EventArgs e)
{
int length = (int)splitFileStream.Length;
txtSplit.AppendText(Environment.NewLine + "拆分文件的大小:" + length + "\r\n");
count = length / (size * );
count = length % (size * ) == ? count : count + ;
for (int i = ; i <= count; i++)
{
using (FileStream fgstream = new FileStream(splitFliePath + (i - ) + splitFile.Extension, FileMode.OpenOrCreate, FileAccess.Write))
{
if (i == count)
{
size = length - (count - ) * ;
}
else
{
size = ;
}
byte[] buffer = new byte[size];
int data = ;
if ((data = splitFileStream.Read(buffer, , buffer.Length)) > )
{
BinaryWriter bWriter = new BinaryWriter(fgstream, Encoding.Default);
bWriter.Write(buffer, , data);
}
}
txtSplit.AppendText(Environment.NewLine + "拆分出文件:" + splitFliePath + (i - ) + splitFile.Extension + "\r\n");
}
txtSplit.AppendText(Environment.NewLine + "拆分完成!\r\n");
}
合并文件操作
private void CheckJoin_Click(object sender, EventArgs e)
{
OpenFileDialog fd = new OpenFileDialog();
if (fd.ShowDialog() == DialogResult.OK)
{
txtFlie.Text = fd.FileName;
joinFile = new FileInfo(fd.FileName);
joinFliePath = "C:\\Users\\XXXX\\Desktop\\合并\\";
}
}
private void btnJoin_Click(object sender, EventArgs e)
{
using (joinFileStream = new FileStream(joinFliePath + "join" + joinFile.Extension, FileMode.OpenOrCreate, FileAccess.Write))
{
for (int i = ; i < count; i++)
{
using (FileStream readStream = new FileStream(joinFile.FullName.Substring(, joinFile.FullName.Length - joinFile.Extension.Length - ) + i + joinFile.Extension, FileMode.Open, FileAccess.Read))
{
byte[] buffer = new byte[readStream.Length];
int data = ;
if ((data = readStream.Read(buffer, , buffer.Length)) > )
{
BinaryWriter binary = new BinaryWriter(joinFileStream, Encoding.Default);
binary.Write(buffer, , data);
}
}
txtJoin.AppendText(Environment.NewLine + "合并文件:" + splitFliePath + (i) + splitFile.Extension + "\r\n");
}
txtJoin.AppendText(Environment.NewLine + "合并完成!\r\n");
txtJoin.AppendText(Environment.NewLine + "合并后文件的大小:" + joinFileStream.Length + "\r\n");
}
}
C#文件的拆分与合并操作示例的更多相关文章
- NDK学习笔记-文件的拆分与合并
文件的拆分与合并在开发中经常会用到,上传或是下载的时候都有这样的运用 文件拆分的思路 将文件大小拆分为n个文件 那么,每个文件的大小就是等大小的 如果文件大小被n除不尽,那么就使用n+1个文件来拆分 ...
- fasta文件拆分与合并
Linux中fasta文件的拆分与合并 FASTA文件的拆分: (1)如果从一个文件a提取第11至20个序列存到另一个文件b: awk -v RS='>' 'NR>1{i++}i>= ...
- java 流操作对文件的分割和合并的实例详解_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 java 流操作对文件的分割和合并的实例详解 学习文件的输入输出流,自己做一个小的示例,对文件进行分割和合并. 下面是代 ...
- 深度学习原理与框架-Alexnet(迁移学习代码) 1.sys.argv[1:](控制台输入的参数获取第二个参数开始) 2.tf.split(对数据进行切分操作) 3.tf.concat(对数据进行合并操作) 4.tf.variable_scope(指定w的使用范围) 5.tf.get_variable(构造和获得参数) 6.np.load(加载.npy文件)
1. sys.argv[1:] # 在控制台进行参数的输入时,只使用第二个参数以后的数据 参数说明:控制台的输入:python test.py what, 使用sys.argv[1:],那么将获得w ...
- 文件操作示例脚本 tcl
linux 下,经常会对用到文件操作,下面是一个用 tcl 写的文件操作示例脚本: 其中 set f01 [open "fix.tcl" w] 命令表示 打开或者新建一个文件“fi ...
- LSM树——LSM 将B+树等结构昂贵的随机IO变的更快,而代价就是读操作要处理大量的索引文件(sstable)而不是一个,另外还是一些IO被合并操作消耗。
Basic Compaction 为了保持LSM的读操作相对较快,维护并减少sstable文件的个数是很重要的,所以让我们更深入的看一下合并操作.这个过程有一点儿像一般垃圾回收算法. 当一定数量的ss ...
- Goldengate进程的拆分与合并
Goldengate的拆分与合并分类: ORACLE GoldenGate 2013-10-10 15:22 721人阅读 评论(0) 收藏 举报在使用Goldengate作为复制解决方案时,随着负载 ...
- php中并发读写文件冲突的解决方案(文件锁应用示例)
PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适 ...
- C#路径,文件,目录,I/O常见操作
C#路径,文件,目录,I/O常见操作 文件操作是程序中非常基础和重要的内容,而路径.文件.目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供 ...
随机推荐
- mysql查询计划
mysql查询计划 1:客户端发起查询请求 2:服务器接收到请求后,先查询缓存 如果缓存命中,直接返回数据给客户端 否则,解析sql 3:sql解析完成后,进行预处理 4:有查询优化器生存查询计划 5 ...
- iOS中忽略NSLog打印信息(通过PCH文件中定义DEBUG宏解决)
iOS中忽略NSLog打印信息 解决办法: 1.新建PrefixHeader_pch文件,在该文件中定义一下宏 //通过DEBUG宏的定义来解决Debug状态下和Release状态下的输出 #ifde ...
- NetBeans使用技巧记录
1.窗体字体大小设置: 在etc文件夹下的netbeans.conf中添加,12表示字体大小,12正合适. netbeans_default_options="--fontsize 12 - ...
- oracle 分布式数据库
分布式数据库的数据库链路是单向的
- Yandex 2013Q(Atoms: There and Back Again-贪心+模拟+List)
Atoms: There and Back Again Time limit 2 seconds Memory limit 256Mb Input stdin Output stdout Legend ...
- mysql 整形的长度问题
tinyint 有符号的范围是-128至127: 无符号的范围是0到255,2的8 次方-1: 存储大小为 1 字节. smallint 有符号的范围是-32768至32767: 无符号的范围是0 ...
- phpcms 2008和discuz X3.1实现同步登陆退出论坛(已实现)
网络上文章很多,按步骤配置好了之后phpcms可以同步登录dz,但是dz登录后状态却无法同步到phpcms,网络上找了很多资料都大同小异,头大.只能自己调试了,废话不多说了. 以下网络上抄 ...
- 自定义cell 自适应高度
#pragma mark - 动态计算cell高度 //计算 返回 文本高度 + (CGFloat)calsLabelHeightWithContact:(Contacts *)contact { / ...
- 完全教程 Aircrack-ng来PJ---WEP、WPA-PSK--加密利器
恩,先说明一下,本章的内容适用于目前市面所有主流品牌无线路由器或AP如Linksys.Dlink.TPLink.BelKin等.涉及内容包括了WEP加密及WPA-PSK加密的无线网络的破解操作实战. ...
- 转:pthread_detach()函数
创建一个线程默认的状态是joinable. 如果一个线程结束运行但没有被join,则它的状态类似于进程中的Zombie Process,即还有一部分资源没有被回收(退出状态码). 所以创建线程者应该调 ...