文件分割和合并
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 /// <summary> 2 /// 文件分割方法 3 /// </summary> 4 /// <param name="sourceFile">要分割的文件</param> 5 /// <param name="desDir">目标目录</param> 6 /// <param name="TempExtra">分割后的小文件名</param> 7 public void SplitFile(string sourceFile,string desDir, string[] TempExtra) 8 { 9 int iFileSize = 9 * 1024; 10 if (Directory.Exists(desDir)) 11 Directory.Delete(desDir, true); 12 else 13 Directory.CreateDirectory(desDir); 14 FileStream SplitFileStream = new FileStream(sourceFile, FileMode.Open); 15 BinaryReader SplitFileReader = new BinaryReader(SplitFileStream); 16 byte[] TempBytes; 17 int iFileCount = (int)(SplitFileStream.Length / iFileSize); 18 if (SplitFileStream.Length % iFileSize != 0) iFileCount++; 19 for (int i = 1; i <= iFileCount; i++) 20 { 21 string sTempFileName = desDir + @"\" + i.ToString().PadLeft(4, '0') + "." + TempExtra[TempExtra.Length - 1]; 22 23 FileStream TempStream = new FileStream(sTempFileName, FileMode.OpenOrCreate); 24 BinaryWriter TempWriter = new BinaryWriter(TempStream); 25 TempBytes = SplitFileReader.ReadBytes(iFileSize); 26 TempWriter.Write(TempBytes); 27 TempWriter.Close(); 28 TempStream.Close(); 29 } 30 SplitFileReader.Close(); 31 SplitFileStream.Close(); 32 }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 /// <summary> 2 /// 文件合并 3 /// </summary> 4 /// <param name="sDirectoryName">要合并为一个文件的目录</param> 5 /// <param name="desFile">要合并成的目标文件</param> 6 public void MergeFile(string sDirectoryName, string desFile) 7 { 8 string[] arrFileNames = Directory.GetFiles(sDirectoryName); 9 int iSumFile = arrFileNames.Length; 10 FileStream AddStream = new FileStream(desFile, FileMode.OpenOrCreate); 11 BinaryWriter AddWriter = new BinaryWriter(AddStream); 12 for (int i = 0; i < iSumFile; i++) 13 { 14 FileStream TempStream = new FileStream(arrFileNames[i], FileMode.Open); 15 BinaryReader TempReader = new BinaryReader(TempStream); 16 AddWriter.Write(TempReader.ReadBytes((int)TempStream.Length)); 17 TempReader.Close(); 18 TempStream.Close(); 19 } 20 AddWriter.Close(); 21 AddStream.Close(); 22 }