文件分割与合并程序

原创 2006年06月13日 03:54:00

#include "dos.h"
#include "stdio.h"
#include "conio.h"
#include<dir.h>
FILE *fp,*fp1,*fp2,*fp3,*fp4,*fp5,*fp6;
char ch3[50];
void postfixname(int divnum)
{     struct ffblk ffblk1;
   int j,ch1[3],done;
   char fixname[4]=".",changename[3];
     for(j=0;j<3;j++)
   {
      ch1[j]=divnum%10;
      divnum=divnum/10;
   }
   for(j=2;j>-1;j--)
   {
      itoa(ch1[j],changename[j],10);
      strcat(fixname,changename[j]);
   }
   strcat(ch3,fixname);
}
void getfname(char *savename)
{
  int i;
  char firstname[20];

  for(i=0;i<20;i++)
  {
     if(savename[i]=='.')
     break;
     firstname[i]=savename[i];

  }
  firstname[i]='/0';
  strcpy(savename,firstname);
}
void division(int divnum)
{
     struct ffblk ffblk;
     struct ffblk ffblk1;
   long int fsize,done,done1,divnum1=1,everysize,leftsize;
   int ch1[3],j;
   float i=0,countsize=0;
   unsigned char *ch2="D://Win-TC//pro1//pro//",ch,lastname;
   char *ch4="D://Win-TC//pro1//pro//record.xx",savename[20];
   done=findfirst("D://Win-TC//pro1//tea1.bmp",&ffblk,0);/*指针指向所要分割的文件*/
   strcpy(savename,ffblk.ff_name);
   getfname(savename);
   printf("%s",savename);
   fsize=ffblk.ff_fsize;
   everysize=fsize/divnum;
   leftsize=fsize%divnum;
   fp=fopen("D://Win-TC//pro1//tea1.bmp","rb");/*指针指向所要分割的文件*/
   fp3=fopen("D://Win-TC//pro1//pro//record.xx","wb");/*创建一个文件并写入*/
   if(fp==NULL)
   {
      printf("sorry");
      getch();
   }
while(divnum1<=divnum+1)
{
   fseek(fp,countsize, SEEK_SET);
   strcpy(ch3,ch2);
   strcat(ch3,savename);
   postfixname(divnum1);
   fp1=fopen(ch3,"wb");/*创建一个文件并写入*/
   if(fp1==NULL)
   {
      printf("error!");
      exit(0);
   }
   ch=fgetc(fp);
   while(!feof(fp)&&i<everysize)/*写入过程*/
   {
      fputc(ch,fp1);   
      ch=fgetc(fp);
      if(feof(fp))
      break;
      i++;
   }
   countsize=countsize+everysize;
   i=0;
   divnum1++;
   fclose(fp1);/*关闭已复制完的文件*/
   done1=findfirst(ch3,&ffblk1,0);
   fp3=fopen("D://Win-TC//pro1//pro//record.xx" ,"a+");
   strlen(ch3);
   fprintf(fp3,"%s/n%ld/n",ch3,ffblk1.ff_fsize);
   fclose(fp3);
}
   fclose(fp);/*关闭已复制完的文件*/
}
void combin()
{
   int fnamesize,fsize1,countsize=0;
   char ch5[50],ch;
   fp4=fopen("D://Win-TC//pro1//pro//record.xx","rb");/*打开分割文件的记录*/
   fp5=fopen("D://Win-TC//pro1//pro//tea1.bmp","wb"); /*存储合并成的文件*/
while(!feof(fp4))
{


   fscanf(fp4,"%s",ch5);
   if(feof(fp4))break;
   fscanf(fp4,"%d",&fsize1);
   fp6=fopen(ch5,"rb");
      ch=fgetc(fp6);
   while(!feof(fp6))/*写入过程*/
   {
      fputc(ch,fp5);
      ch=fgetc(fp6);
      if(feof(fp6))break;
   }
   fclose(fp6);
   printf("%s,%d/n",ch5,fsize1);
}
fclose(fp4);
fclose(fp5);
}
void main()
{
   int divnum=300-1;/*分割文件数目*/
   division(divnum);
   combin();
   getch();
}

C语言学习笔记之文件的分割与合并

分割与合并的思想1. 分割:和安卓多线程下载类似 ,首先将文件长度按N段分,然后将每段文件读取并写入到相应的临时文件,以达到分割的目的 2. 合并:将每段临时文件依次读取,然后写入到要合并成的新文件...
  • qq_28261343
  • qq_28261343
  • 2016年07月06日 14:54
  • 2783

Wireshark切割PCAP以及合并PCAP

Wireshark对PCAP文件进行切割和合并操作。
  • Joseph_ChiRunningAnt
  • Joseph_ChiRunningAnt
  • 2017年04月25日 17:32
  • 1897

java流操作对文件的分割和合并

学习文件的输入输出流,自己做一个小的示例,对文件进行分割和合并。
  • u010648555
  • u010648555
  • 2015年11月28日 17:58
  • 4101

c++ 合并文件以及拆分

昨天看到一篇介绍TFS的文章,大意是为了处理海量图片,采用分布式架构,将小图片合并为大的文件         兴趣驱使下,写了一个简单的文件合并拆分程序             合并的方法很简单...
  • KWSY2008
  • KWSY2008
  • 2015年03月19日 21:40
  • 4500

Wireshark 文件分割和合并

通常使用 Wireshark 处理一个较大的捕获文件时,可能处理速度会很慢,或者甚至没响应。当捕获文件超过 100MB 时,使用显示过滤器、添加列或构建图表都可能很慢。为了快速地分析数据,这时候可以将...
  • qq_20480611
  • qq_20480611
  • 2016年03月01日 18:47
  • 6542

Java 实现文件分割,合并功能

在文件操作中,经常遇到很大的文件,比如有一个10G文件,那么操作系统可能不支持直接铐贝,因为文件太大;那么我们可以把文件进行分割,分割成10个 1G文件,然后铐贝过去,再合并文件;像我在CSDN上传文...
  • u014266877
  • u014266877
  • 2017年01月10日 10:31
  • 887

C#文件的分割与合并

C#实现文件的分割与合并
  • scimence
  • scimence
  • 2015年04月02日 09:22
  • 1369

java实现文件的分割与合并

无非就是io流------------------------------------------------------- 实例类: 1.抽象类 import java.io.File; impor...
  • lbf5210
  • lbf5210
  • 2016年05月06日 14:17
  • 925

java 文件分割及合并

文件分割与合并是一个常见需求,比如:上传大文件时,可以先分割成小块,传到服务器后,再进行合并。很多高大上的分布式文件系统(比如:google的GFS、taobao的TFS)里,也是按block为单位,...
  • jdsjlzx
  • jdsjlzx
  • 2016年04月19日 17:49
  • 1568

java分割文件并且合并文件(zip,rar....)

JAVA分割文件,把一个ZIP文件通过指定的大小分割,然后合并起来。 分割 package com.zkq.objectstream; import java.io.BufferedInputS...
  • kai46385076
  • kai46385076
  • 2014年09月07日 20:53
  • 1082
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文件分割与合并程序
举报原因:
原因补充:

(最多只允许输入30个字)