C#文件朋分的辦法。本站提示廣大學習愛好者:(C#文件朋分的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#文件朋分的辦法正文
本文實例講述了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#法式設計有所贊助。