//=====================================================//
//我有几个文件夹,里面的文件名相同,我要把它们复制到一个文件夹下面
//=====================================================//
#include "cv.h"
#include "highgui.h"
#include <stdio.h>
#include <io.h> //_finddata_t,c_file,_findfirst,_findnext
char* combine( char* front, char* back )//合并字符串
{
int len = strlen( front ) + strlen( back ) + 2 ;
char* path = new char[ len + 1 ];
int k=0;
for( int i = 0; i < strlen( front ); i++ )
{
path[ k ] = front[ i ];
k++;
}
for( int i = 0; i< strlen( back ); i++ )
{
path[ k ] = back[ i ];
k++;
}
path[ k ] = '/0';
return path;
}
int main()
{
struct _finddata_t c_file;
long hFile;
IplImage* p1;
IplImage* p2;
char* r1 = "E://project//Project for Graduate//Sylebook//09-03-27//09-03-27-E//";
char* r2 = "E://project//Project for Graduate//Sylebook//09-03-27//set//";
char* a1 = "*.bmp";
char* a2 = "E";
char* path1 = combine( r1, a1 );
char* path2 = NULL;
char* path3 = NULL;
char* name = NULL;
if( (hFile = _findfirst( path1, &c_file )) == -1L )
{
printf( "No *.c files in current directory!/n" );
}
else
{
path3 = combine(r1,c_file.name);
printf("%s/n",path3);
p1 = cvLoadImage( path3, CV_LOAD_IMAGE_ANYCOLOR );
if( p1 == NULL )
{
printf("error in cvLoadImage/n");
while(1);
}
p2 = cvCreateImage( cvGetSize( p1 ), p1->depth, p1->nChannels );
cvCopy( p1, p2, NULL );
name = combine( a2,c_file.name );
path2 = combine( r2, name );
printf("%s/n",path2);
cvSaveImage( path2, p2 );
cvReleaseImage( &p1 );
cvReleaseImage( &p2 );
delete [] name;
delete [] path2;
delete [] path3;
while( _findnext( hFile, &c_file ) == 0 )
{
//printf("%s/n",c_file.name);
path3 = combine(r1,c_file.name);
printf("%s/n",path3);
p1 = cvLoadImage( path3, CV_LOAD_IMAGE_ANYCOLOR );
if( p1 == NULL )
{
printf("error in cvLoadImage/n");
while(1);
}
p2 = cvCreateImage( cvGetSize( p1 ), p1->depth, p1->nChannels );
cvCopy( p1, p2, NULL );
name = combine( a2,c_file.name );
path2 = combine( r2, name );
printf("%s/n",path2);
cvSaveImage( path2, p2 );
cvReleaseImage( &p1 );
cvReleaseImage( &p2 );
delete [] name;
delete [] path2;
delete [] path3;
}
_findclose( hFile );
}
while(1);
delete [] path1;
return 1;
}