⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spliting_file.cpp

📁 本程序介绍了如何用C语言快速读写磁盘文件。
💻 CPP
字号:
#include <stdio.h>
#include <stdlib.h>

void Get_Config_Info( char Src_File[1025],
					  char Dst_File1[1025],
				  	  char Dst_File2[1025],
					  int  *Dst_File1_Size )
{
	FILE *fp;
	char str1[1025],str2[1025],str3[1025],str4[1025],str5[1025],str6[1025],str7[1025],str8[1025];

	fp = fopen( "Split_File_Configration.txt", "r" );
	if(fp == NULL)
	{
		printf("Cannot open file Split_File_Configration.txt\n");
		exit(0);
	}

	fgets(  str1, 1024, fp );
	fgets(  str2, 1024, fp );
	sscanf( str2, "%s", Src_File );
	fgets(  str3, 1024, fp );
	fgets(  str4, 1024, fp ); 
	sscanf( str4, "%s", Dst_File1 );
	fgets(  str5, 1024, fp );
	fgets(  str6, 1024, fp ); 
	sscanf( str6, "%s", Dst_File2 );
	fgets(  str7, 1024, fp );
	fgets(  str8, 1024, fp ); 
	sscanf( str8, "%d", Dst_File1_Size );

	fclose(fp);
//	printf("\n%s\n%s\n",Src_File,Dst_File1);

	return;
}

//Spliting one file to two small files.
void Split_File_test()
{
	char Src_File[1025];
	char Dst_File1[1025];
	char Dst_File2[1025];
	int  Dst_File1_Size;

	FILE *fp_in,*fp_out1,*fp_out2;
	unsigned char ch;
	int i = 0;

	Get_Config_Info( Src_File, Dst_File1, Dst_File2, &Dst_File1_Size );
	Dst_File1_Size = Dst_File1_Size * 1024 * 1024;  //Bytes

	if( (fp_in = fopen( Src_File, "rb" )) == NULL )
	{
		printf("cannot open the input file\n");
		exit(0);
	}
	if( (fp_out1 = fopen( Dst_File1, "wb" )) == NULL )
	{
		printf("cannot open the output file\n");
		exit(0);
	}
	if( (fp_out2 = fopen( Dst_File2, "wb" )) == NULL )
	{
		printf("cannot open the output file\n");
		exit(0);
	}

	while(1)  
	{
		ch = fgetc(fp_in);
		if( feof(fp_in) )   
		{
			printf( "\nSeconed file ok, %d bytes\n", i - Dst_File1_Size );
			break;          
		}
		if( i++ < Dst_File1_Size )
		{
			fputc( ch, fp_out1 );
			continue;
		}
		else
		{
			if( i == Dst_File1_Size + 1 )
				printf( "\nFirst file ok, %d bytes", i - 1 );
			fputc( ch, fp_out2 );
			continue;
		}

	}

	fclose(fp_in);
	fclose(fp_out1);
	fclose(fp_out2);

	return;
}

#if 0
void Split_File_test()
{
	int Dst_File1_Size = 104857600;
	char Src_File[] = "F:\\Download_temp\\nfs5.exe";
	char Dst_File1[] = "F:\\Download_temp\\1.exe";
	char Dst_File2[] = "F:\\Download_temp\\2.exe";

	Spliting_File( Src_File, Dst_File1, Dst_File2, Dst_File1_Size );

	return;
}
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -