find関数ですがこれでは効率悪いですか?気になります。

int find(moji name2[256],int sum2){
struct _finddata_t c_file;
long hFile;
int count=0,i,j;

for(j=0;j<sum2;j++){
// カレント ディレクトリ内の最初のファイルを探します。
if( (hFile = _findfirst( name2[j].m, &c_file )) == -1 ){
printf( "カレント ディレクトリにはファイルは存在しません。 %s\n" ,name[j].m);
system("pause");
}
else{
printf( " %-12s \n", c_file.name );
strcpy(name[count].m,c_file.name);
count++;
// 残りのファイルを探します
while( _findnext( hFile, &c_file ) == 0 ){
strcpy(name[count].m,c_file.name);
count++;
printf( "%s ", c_file.name);
printf( "%s \n", name[count-1].m);
}
_findclose( hFile );
}
}
for(i=0;i<count;i++)
printf( "%s \n", name[i].m);
return count;
}