可以用c去解决
#include
#include
#include
#include
#include
#define SUCCESS 1
#define READ_BUFF 8192
int main(int argc,char** argv)
{
printf("--- file combine Programme ---n");
if(NULL==argv[2])
{
printf("Input param error! exit...nPls use ./main data_folder outputCombinedFileNamen");
exit(0);
}
char *filePrefix = new char[256];
char *fileListBuf = new char[READ_BUFF];
DIR *dirp;
struct dirent* dp;
char *str = new char[256];
long fileSize = 0L;
int nread = 0;
if((dirp=opendir(argv[1])) == NULL ) return -1;
else
{
while((dp = readdir(dirp))!= NULL)
{
FILE *fd;
FILE *outFile;
if(strcmp(dp-> d_name,".")==0||strcmp(dp->d_name,"..")==0)continue;
sprintf(str,"%s/%s",argv[1],dp->d_name);
if((fd=fopen(str,"r"))!=NULL)
{
printf("Combining %s now ...n",str);
fseek(fd,0,SEEK_END);
fileSize = ftell(fd);
rewind(fd);
outFile = fopen(argv[2],"a+");
if(NULL == outFile)
{
printf("open output file error!n");
}
while((nread=fread(fileListBuf,sizeof(char),READ_BUFF,fd))>0)
{
fwrite(fileListBuf,sizeof(char),nread,outFile);
}
fclose(fd);
fclose(outFile);
}
}
}
closedir(dirp);
delete[] filePrefix;
delete[] fileListBuf;
delete[] str;
return SUCCESS;
}