c语言之分割与合并文件
2017-05-20 22:39
204 查看
一.本文主要内容是分割一个与合并几个文件,使用c语言实现
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>/*文件分割,path为要分割的文件路径name为文件名,count为分割数量,savepath为保存路径,返回-1表示分割失败,0表示成功*/int splitFile(char *path, int count, char *savepath, char *savename){FILE *F = fopen(path,"rb");if (F == NULL){return -1;}else{fseek(F, 0, SEEK_END);//将文件指针移动到文件末尾int length = ftell(F);//计算文件指针到文件开头的字节数,即就是文件大小int yushu = length % count;//余数int size = length / count; //前面count-1份每一分大小为size,最后一份为size + yushufor (int i = 1; i <= count; i++){char savefile[100];sprintf(savefile, "%s%d%s", savepath, i, savename);printf("%s", savefile);FILE *P = fopen(savefile, "wb");if (P == NULL){fclose(F);return -1;}else{fseek(F, (i - 1)*size, SEEK_SET);if (i == count){for (int j = 0; j <= size + yushu; j++){int c = fgetc(F);fputc(c, P);}}else{for (int j = 0; j < size; j++){int c = fgetc(F);fputc(c, P);}}}fclose(P);}fclose(F);return 0;}}/*合并文件,将文件list中每一行指定的文件按行顺序合并为一个大文件bigfile返回-1表示分割失败,0表示成功*/int mergeFile(char *list,int count,char *bigfile){FILE *F = fopen(list, "r");FILE *BF = fopen(bigfile, "wb");if (F == NULL || BF == NULL){printf("打开文件失败");return -1;}else{for (int i = 0; i < count; i++){char str[200];fgets(str, 200, F);//每次读取一行字符串,读到末尾为0printf("%s", str);int len = strlen(str);str[len - 1] = '\0';printf("%s", str);FILE *P = fopen(str, "rb");if (P == NULL){printf("打开文件失败");fclose(F);fclose(BF);return -1;}else{int c = fgetc(P);while (c != EOF){fputc(c, BF);c = fgetc(P);}}fclose(P);}}fclose(F);fclose(BF);return 0;}void main(){//int i = splitFile("F:\\文件分割与合并.mp4", 4, "F:\\", "文件分割与合并.mp4");//printf("%d", i);mergeFile("F:\\list.txt",4, "F:\\he.mp4");system("pause");}2.效果截图3.list文件内容
相关文章推荐
- C语言学习笔记之文件的分割与合并
- 文件的合并与分割
- 用Java实现文件分割/合并操作
- 文件的分割和合并
- 用Java简单实现文件分割与合并
- 文件分割 合并 小软件 呵呵
- 文件分割,合并
- 电影文件的合并与分割
- c#文件分割与合并 part 1 (转自互联网)
- Windows WIM文件的分割,合并,瘦身操作
- JAVA写的文件分割与文件合并程序
- JAVA写的文件分割与文件合并程序
- Python分割文件以及合并文件
- 金锋文件分割与合并 bt
- c#文件分割与合并 part 2
- JAVA写的文件分割与文件合并程序
- c#文件分割与合并 part 1 (转自互联网)
- 文件分类、合并和分割(笔记)
- 文件分割和合并多线程实现
- 文件分割与合并代码实现