文件分割和合并

 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         }
文件分割
 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         }
文件合并

 

posted @ 2013-10-21 21:23  自然去留  阅读(272)  评论(0编辑  收藏  举报