#include
#include
#include
#include
#include
#include
using namespace std;
vector vecDir;
int SelectFile( const struct dirent* pDir )
{
if( NULL == pDir )
{
return 0;
}
string strFile = pDir->d_name;
if( 4 == pDir->d_type )
{
string strDir = pDir->d_name;
if( "." == strDir || ".." == strDir )
{
return 0;
}
vecDir.push_back( pDir->d_name );
return 0;
}
int n = strFile.rfind( '.' );
if( -1 == n )
{
return 0;
}
string strSubStr = strFile.substr( n );
if( strSubStr != ".cpp")
{
return 0;
}
return 1;
}
int SortFile( const struct dirent** pLeftDir, const struct dirent** pRightDir )
{
return 1;
}
bool SearchForLinux(const char* pszDir, vector& vecFiles)
{
string strDir;
if( NULL == pszDir )
{
strDir = ".";
}
else
{
strDir = pszDir;
}
dirent** ppNameList;
int n = scandir( strDir.c_str(), &ppNameList, SelectFile, SortFile );
if( n < 0 )
{
int nErr = errno;
if( 2 == nErr )
{
return true;
}
cout<<"scandir failed:"<d_name;
vecFiles.push_back( strFile );
free( ppNameList[i] );
}
free( ppNameList );
vector vecTempDir;
vecTempDir = vecDir;
vecDir.clear();
for( int i=0; i vecFiles;
SearchForLinux(NULL, vecFiles);
for(int i=0; i