C#文件分割的方法

作者:DTC2 时间:2023-09-17 22:20:56 

本文实例讲述了C#文件分割的方法。分享给大家供大家参考。具体如下:

1. 小文件分割(适用于小于等于64M的文件):


using System;
using System.IO;
string filetosplit=@"C:\temp\data.bin";
string targetpath=@"D:\store";
FileStream fsr = new FileStream(filetosplit, FileMode.Open, FileAccess.Read);
long FileLength=fsr.Length;
byte[] btArr = new byte[FileLength];
fsr.Read(btArr, 0, (int)FileLength);
fsr.Close();
int splitcount=3;
long PartLength=FileLength/splitcount+FileLength%splitcount;
int nCount=(int)Math.Ceiling((double)FileLength/PartLength);
string strFileName=Path.GetFileName(filetosplit);
long byteCount=0;
for(int i=1;i<=nCount;i++,byteCount=(i<nCount?byteCount+PartLength:FileLength-PartLength))
{
 FileStream fsw = new FileStream(targetpath + Path.DirectorySeparatorChar+ strFileName +i, FileMode.Create, FileAccess.Write);
 fsw.Write(btArr, (int)byteCount, (int)(i<nCount?PartLength:FileLength-byteCount));
 fsw.Flush();
 fsw.Close();
}

2. 大文件分割(适用于大于64M的文件)


using System;
using System.IO
string filetosplit=@"C:\temp\data.bin";
string targetpath=@"D:\store";
FileStream fsr = new FileStream(filetosplit, FileMode.Open, FileAccess.Read);
long FileLength=fsr.Length;
byte[] btArr = new byte[FileLength];
fsr.Read(btArr, 0, (int)FileLength);
fsr.Close();
int splitcount=3;
long PartLength=FileLength/splitcount+FileLength%splitcount;
int nCount=(int)Math.Ceiling((double)FileLength/PartLength);
string strFileName=Path.GetFileName(filetosplit);
long byteCount=0;
for(int i=1;i<=nCount;i++,byteCount=(i<nCount?byteCount+PartLength:FileLength-PartLength))
{
 FileStream fsw = new FileStream(targetpath + Path.DirectorySeparatorChar+ strFileName +i, FileMode.Create, FileAccess.Write);
 long bc=byteCount;
 long PartCount=i<nCount?PartLength:FileLength-bc;
 int PartBufferCount=(int)(PartCount<int.MaxValue/32?PartCount:int.MaxValue/32);
 int nc=(int)Math.Ceiling((double)PartCount/PartBufferCount);
 for(int j=1;j<=nc;j++,bc=(j<nCount?bc+PartBufferCount:PartCount-PartBufferCount))
   fsw.Write(btArr, (int)bc, (int)(j<nc?PartBufferCount:PartCount-bc));
 fsw.Flush();
 fsw.Close();
}
fsr.Close();

希望本文所述对大家的C#程序设计有所帮助。

标签:C#,文件,分割
0
投稿

猜你喜欢

  • Java Validation方法入参校验实现过程解析

    2021-08-04 03:31:50
  • C#开发中常用的加密解密方法汇总

    2021-09-06 23:35:49
  • java并发编程_线程池的使用方法(详解)

    2023-03-29 22:23:00
  • Android常用三方库混淆规则整理(小结)

    2022-09-10 16:35:34
  • Studio 编译报错:compileSdkVersion 'android-24' requires JDK 1.8 or later to compile.的解决办法

    2023-06-19 17:19:41
  • C#实现自定义定时组件的方法

    2023-06-04 12:36:26
  • BeanDefinition基础信息讲解

    2022-03-23 23:48:37
  • SpringBoot项目速度提升之延迟初始化(Lazy Initialization)详解

    2021-11-27 06:37:22
  • Android简单实现启动画面的方法

    2022-08-25 17:54:55
  • Java并发编程之ReadWriteLock读写锁的操作方法

    2023-12-07 20:08:37
  • mybatis教程之延迟加载详解

    2023-02-19 12:45:18
  • Spring boot中filter类不能注入@Autowired变量问题

    2023-04-24 14:17:41
  • Java获取指定字符串出现次数的方法

    2022-05-11 16:06:23
  • 总结Android App内存优化之图片优化

    2022-07-01 22:52:16
  • idea install 时提示jdk的某个jar包的包不存在的问题

    2021-12-19 05:48:37
  • implicit关键字做自定义类型隐式转换的方法

    2021-10-22 20:00:40
  • java中fastjson生成和解析json数据(序列化和反序列化数据)

    2023-12-08 17:45:24
  • Spring MVC 使用支付宝接口完成在线支付的示例代码

    2023-11-29 04:07:55
  • android studio 3.0 service项目背景音乐实现

    2023-07-03 23:34:36
  • Spring Boot 结合 aop 实现读写分离

    2023-09-29 07:53:02
  • asp之家 软件编程 m.aspxhome.com