http://www.c-sharpcorner.com/1/FileMergerAndSplitter.asp拆分,合并 文件

解决方案 »

  1.   

    下面是文件组合和分割的代码,你可以仔细看看
    using System;
    using System.IO;private const string FILE_NAME="d:\\tests\\HelloWorld.exe";
    private const string FILE_NAME1="d:\\tests\\HelloWorld1.exe";
    private const string PATH="d:\\tests\\patch";
    分解程序
       string PatchFileName;
       byte[] patch;
       int  Length,PLength,StreamLength;
       int i;
       i=0;
       PLength=1500;
       patch=new byte[PLength];
       if(!File.Exists(FILE_NAME))
    return;
     FileStream fs=new FileStream(FILE_NAME,FileMode.Open,FileAccess.Read);
       Length=(int)fs.Length;
       BinaryReader br=new BinaryReader(fs);
       while(Length>0)
       {
         StreamLength=Math.Min(Length,PLength);
         PatchFileName=PATH+i.ToString();
         FileStream Pfs=new FileStream(PatchFileName,FileMode.CreateNew,FileAccess.Write);
         BinaryWriter Pbw=new BinaryWriter(Pfs);
         br.Read(patch,0,(int)StreamLength);
         Pbw.Write(patch,0,StreamLength);
         Pbw.Close();
         Pfs.Close();
         Length=Length-PLength;
         i++;
        }
    br.Close();
    fs.Close();
    组合程序
    分割
    string PatchFileName;
    byte[] patch;
    int Length,PLength,i;
    PLength=1500;
    i=0;
    patch=new byte[PLength];
    FileStream fs=new FileStream(FILE_NAME1,FileMode.CreateNew,FileAccess.Write);
    BinaryWriter bw=new BinaryWriter(fs);
    PatchFileName=PATH+i.ToString();
    while(File.Exists(PatchFileName))
      {
    FileStream Pfs=new FileStream(PatchFileName,FileMode.Open,FileAccess.Read);
    BinaryReader Pbr=new BinaryReader(Pfs);
    Pbr.Read(patch,0,(int)Pfs.Length);
    bw.Write(patch,0,(int)Pfs.Length);
    Pbr.Close();
    Pfs.Close();
    i++;
    PatchFileName=PATH+i.ToString();
    }
    bw.Close();
    fs.Close();
    }