
marciodfnew
(usa RedHat)
Enviado em 23/06/2008 - 10:55h
Olá galera! To precisando de um help...
To implementando um código que lé todo o conteúdo de um diretório e apresenta na tela com o "scandir".
Mas ao passar nenhum parametro, ele devia apresentar todo o conteúdo do diretorio, mas ele não apresenta.
Implementei o código do "man scandir", segue ele:
##########################################################
int main( int argn, char **args )
{
struct dirent **namelist;
int numFiles = scandir( ".", &namelist, 0, alphasort );
if ( numFiles < 0 )
perror("scandir");
else if( argn > 0 )
{
for( int idx = 1; idx < numFiles; idx++)
{
std::cout << std::endl;
std::cout << args[idx] << std::endl;
}
}
else
{
std::cout << std::endl;
while(numFiles--)
{
std::cout << " File [" << numFiles << "]: " << namelist[ numFiles ]->d_name << std::endl;
free(namelist[ numFiles ]);
}
free(namelist);
std::cout << std::endl;
}
}
##########################################################
Acho que to errando nos if, mas tentei várias condições: else if( argn == 0 ); else if( namelist == 0 )... e não da certo.
Alguem pode me ajudaaar!?!?!