文件的分割与合并

/*文件的分割*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define NUM 1024 * 1024 * 100
int main()
{
        //所需分割的文件路径
	FILE *fr = fopen("F:\\PL.exe", "rb");
	if (fr == NULL)
	{
		exit(-1);
	}

	char *buff = (char*)malloc(sizeof(char) * NUM);
	if (buff == NULL)
	{
		exit(-2);
	}
	size_t rs = 0;
	FILE *fw;// = fopen("F:\\1.exe", "wb");

	//将分割的文件循环存放在目标路径下
	char str[100] = "F:\\";    
	char tmp_file[100];
	char name[100];
	int i = 1;

	while((rs  = fread(buff,sizeof(char),NUM, fr)) > 0)
	{
		// sprintf
		itoa(i,name,10);//    i->1-->name-->"1"
		strcpy(tmp_file, str);// tmp_file ->>"f:\\"
		strcat(tmp_file,name);//       f:\\1
		strcat(tmp_file, ".exe");

		fw = fopen(tmp_file, "wb");
		fwrite(buff,sizeof(char) ,rs, fw);
		fclose(fw);

		i++;
	}

	fclose(fr);
	return 0;
}

/*文件的合并*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define NUM 1024*1024*100// 10MB
int main()
{
	FILE *fr1 = fopen("F:\\1.exe", "rb"); //分割后的文件路径
	FILE *fr2 = fopen("F:\\2.exe", "rb");
	FILE *fw = fopen("F:\\meger.exe", "wb");//文件合并后的目标路径

	char *buff = (char*)malloc(sizeof(char) * NUM);
	//
	size_t rs = 0;
	FILE *arr[] = {fr1,fr2};
	for (int i=0;i<2;i++)
	{
		while((rs = fread(buff,sizeof(char),NUM, arr[i])) > 0)
		{
			fwrite(buff, sizeof(char), rs, fw);
		}

		fclose(arr[i]);
	}

	fclose(fw);
	free(buff);

	return 0;
}
时间: 2024-10-12 21:23:54

文件的分割与合并的相关文章

C#文件的分割与合并

//--------------------文件,分割与合并---------------------------------------- using System.IO /// <summary> /// 单个文件分割函数, /// 可将任意文件fileIn分割为若干个子文件, 单个子文件最大为 len KB /// delet标识文件分割完成后是否删除原文件, change为加密密匙 /// fileIn = "D:\\file.rar", 子文件名形如"D

黑马程序员 IO流 文件的分割与合并

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ----------------------package cn.itcast.IO; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException;

java 流操作对文件的分割和合并的实例详解_java - JAVA

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 java 流操作对文件的分割和合并的实例详解 学习文件的输入输出流,自己做一个小的示例,对文件进行分割和合并. 下面是代码: package com.dufy.file; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import jav

Python 视频文件的分割和合并

--分割代码 start---- import sys,os; kilobytes = 1024; megabytes = kilobytes*1024; chunksize = int(10*megabytes); def split(fromfile,todir,chunksize=chunksize): if not os.path.exists(todir): os.mkdir(todir) else: for fname in os.listdir(todir): os.remove(

Linux 大文件的分割与合并

1.分割 -- split命令 可以指定按行数分割和按字节大小分割两种模式. (1) 按行数分割 $ split -l 300 large_file.txt new_file_prefix 加上-d,使用数字后缀:加上--verbose,显示分割进度: $ split -l50000 -d large_file.txt part_ --verbose (2) 按字节大小分割 $ split -b 10m large_file.log new_file_prefix 2.合并 -- cat命令 $

对大文件实现分割及合并处理

1 public void cutFile(File bigFile,File destFile,int cutSize){ 2 3 FileInputStream inputStream = null; 4 int size = 1024*1024; //1M 5 try { 6 if (!destFile.isDirectory()){ //如果保存分割文件的地址不是路径 7 destFile.mkdir(); //创建路径 8 } 9 size = size * cutSize; //分割

java实现文件的分割与合并

无非就是io流------------------------------------------------------- 实例类: 1.抽象类 import java.io.File; import java.io.IOException; public abstract class PartitionFile { /** * 单个文件设置的字节数 */ public static long MAX_BYTE = 1024*1024*1000; /** * 获取可以分割的文件数 * * @p

java大文件的分割和合并

import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FilenameFilter; import java.io.SequenceInputStream; import java.util.ArrayList; import java.util.Collections; i

文件分割与合并(Java)

一.文件分割示意图 二.文件合并示意图 方式一:通过文件追加的方式 方式二:通过SequenceInputStream对其他输入流的逻辑串联. 测试RandomAccessFile随机访问文件 package FileSplitMerge; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import IOOthers.FileUtil; /** * RandomAccessFil