C#文件分割的方法

时间:2021-05-20

本文实例讲述了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.IOstring 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#程序设计有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章