- //文件分割(适合小文件,小于等于64MB)
- 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();
- }
- //文件分割(适合大文件,大于64MB)
- 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();
- //该片段来自于http://www.codesnippet.cn/detail/0806201512805.html
来源: http://www.codesnippet.cn/detail/0806201512805.html