这是我的一段简单的代码:
CFile srcFile;
CFile tarFile;
int iRet;
while((iRet=tarFile.Read(buf,1024))>0)
{
     srcFile.Write(buf,iRet);
}

解决方案 »

  1.   

    你这个相当于拷贝文件;接下去打开另外一个tarFile接着读取写入srcFile就可以了。
      

  2.   

    /***************************************************
    Function: Cls_File::UniteFiles
    Description: 文件合并
    Table Accessed:
    Table Updated:
    Parameter: LPCTSTR lpDstFileName - 合并的目标文件
         :     LPCTSTR lpSrcFileName - 被合并的文件
    Return: BOOL - 合并是否成功
    Others:
    ***************************************************/
    BOOL Cls_File::UniteFiles(LPCTSTR lpDstFileName, LPCTSTR lpSrcFileName)
    {
    ASSERT(AfxIsValidString(lpDstFileName));
    ASSERT(AfxIsValidString(lpSrcFileName));
    //以只写方式打开目标文件
    Cls_File dstFile;
    BOOL bOpen = dstFile.Open(lpDstFileName,accessWriteOnly);
    if(bOpen == FALSE)
    return FALSE;
    //以只读方式打开被合并文件
    Cls_File srcFile;
    bOpen = srcFile.Open(lpSrcFileName,accessReadOnly);
    if(bOpen == FALSE)
    {
    dstFile.Close();
    return FALSE;
    } //设置读写文件指针
    dstFile.SeekToEnd();
    srcFile.SeekToBegin(); DWORD dwLength = srcFile.GetLength();
    char buf[BUFSIZE];
    //分块合并文件内容
    while(dwLength > 0)
    {
    //每次读写一个缓冲区大小的内容
    memset(buf,0,BUFSIZE);
    DWORD dwRead = srcFile.Read(buf,BUFSIZE);
    DWORD dwWrite = dstFile.Write(buf,dwRead);
    //如果读与写的长度不同,需要重新调整读指针的位置
    if(dwWrite != dwRead)
    srcFile.Seek(dwWrite - dwRead,current);
    //修改文件长度
    dwLength -= dwWrite;
    }
    //关闭文件
    srcFile.Close();
    dstFile.Close();
    return TRUE;
    }
      

  3.   

    Cls_File dstFile;
    这里你用CFile就行了
      

  4.   

    这个要看什么文件了,如果是HTML,PDF等类型的文件,你需要分析文件格式,然后才能合并。这类文件除了有物理结构还有逻辑结构