• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Ziwdon

[RESOLVIDO] C + Linux: Listar ficheiros/directorias de uma determinada pasta!

4 mensagens neste tópico

Boas pessoal

Eu sei que é possivel executar comandos da consola do linux num programa em C através de system("COMANDO");.

O que eu queria era executar o comando ls e colocar o resultado numa array no programa. Porem nao sei como o fazer.

Nao sei se da para o fazer directamente, mas se nao der pensei em fazer o output do conteudo da consola para um ficheiro ou assim e depois aceder ao ficheiro atraves do programa, mas tambem nao sei como 'imprimir' o que esta na consola.

Resumindo...eu quero colocar o resultado do #ls numa array de caracteres. É possivel?

Edit: Bem já estive a pesquisar mais a fundo e aparentemente não é possível. Existe um comando que é o logsave (save the output of a command in a logfile) mas é necessario executa-lo como root, por isso nao serve. De resto nao ha mais nada de especial. É tambem possivel fazer ls log.lst mas tabém nao resulta porque apenas lista a directoria actual e apenas se existir log.lst.

Assim reformulo o meu problema. O que eu preciso é de listar os ficheiros/directorias presentes numa determinada pasta. Como faze-lo em C + Linux?

Vou continuar a pesquisar.

Cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

system(ls <path da directoria> > ficheiro)

Depois lês o ficheiro e mostras ao utilizador.

Por exemplo:

system("ls /home/buttpt/Desktop > ficheiro.txt");

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok está resolvido.

Ambos os métodos são uteis embora o 2º seja um pouco mais complicado.

O 1º é semelhante aquele que eu falei. Eu sabia que dava para fazer o output para um ficheiro mas nao sabia como...e naquele exemplo que vi era ANSI C dai eles nao terem falado nisso.

Vou tentar implementar um ciclo para obter tambem os subdirectorios atraves do 1º metodo. Se nao conseguir uso o 2º.

Muito obrigado aos dois.

Cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora