Contando Arquivos em C

1. Contando Arquivos em C

leoonardo araujo bezerra
leonardoab

(usa Outra)

Enviado em 02/05/2011 - 15:19h


Bom dia pessoal,
Seguinte,
Tem uma parte do meu programa que ele tem q retornar o numero de arquvios contido em cada pasta...
pesquisei,pesquisei e quaseeeee achei
no console do linux ficou assim
cd nome_da_pasta
ls | wc -l
retornou... mas quando fui passar o comando para o C
o comnado cd nao funciona e ele fala o numero de arquivos do diretorio atual.
alguem tem alguma ideia d como contar?
e como armazenar esse numero em uma variavel?
Obrigado galera



  


2. Re: Contando Arquivos em C

André
andrezc

(usa Debian)

Enviado em 02/05/2011 - 21:14h

Mas você quer "fazer" um programa que conte os arquivos ou quer "montar" um? São coisas diferentes. Vou explicar melhor: você quer fazer, criar do zero ou basear-se em um projeto, ou quer "montar", usar algo pronto, como o wc?


3. Re: Contando Arquivos em C

Joao
stack_of

(usa Slackware)

Enviado em 02/05/2011 - 21:35h

Diretamente da documentação da libc obtive esse exemplo de programa que lista arquivos em um diretório:

#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>

int
main (void)
{
DIR *dp;
struct dirent *ep;

dp = opendir ("./");
if (dp != NULL)
{
while (ep = readdir (dp))
puts (ep->d_name);
(void) closedir (dp);
}
else
perror ("Couldn't open the directory");

return 0;
}



4. COMO

leoonardo araujo bezerra
leonardoab

(usa Outra)

Enviado em 03/05/2011 - 14:11h

Estou na liguagem C.
Tenho que contar o numero de arquvios de uma certa pasta do sistema e armazenar esse numero em uma variavel.
Obrigado


5. Stack

leoonardo araujo bezerra
leonardoab

(usa Outra)

Enviado em 03/05/2011 - 14:13h

Queria contar,nao listar os itens
=D
msm assim vlws


6. RE

Fernando Krein Pinheiro
fernandopinheiro

(usa Debian)

Enviado em 03/05/2011 - 14:50h

Olá amigo!

Aqui está seu codigo:

#include <stdio.h>
#include <stdlib.h>

int main()
{

printf("Contando os Arquivos:");
system("ls /home/fernando | wc -l");

return 0;
}

Modifique o "/home/fernando" para o diretorio onde voce quer contar os arquivos. Voce poderá melhora-lo fazendo com que o usuario digite o diretorio.

Repare que este programa está usando uma gambiarra. Ele usa uma chamada do sistema para contar os arquivos.

Esse código só vai funcionar no Linux (Testei com o Ubuntu 10.10), mas deve funcionar com outros tambem.


7. RE

Fernando Krein Pinheiro
fernandopinheiro

(usa Debian)

Enviado em 03/05/2011 - 14:55h

Outra dica se voce precisar é usar:

Para contar o número de arquivos de um diretório (pasta) incluindo todos os subdiretórios (subpastas) faça:

ls -R | wc -l


Adapte isso para o system("ls -R /home/fernando | wc -l");



8. Re: Contando Arquivos em C

Joao
stack_of

(usa Slackware)

Enviado em 03/05/2011 - 19:04h

Leonardo, se vê que você é realmente noob em programação. Já passei por isso, mas um pouco de esforço pessoal ao ler código de terceiros ajuda a inclinar a curva de aprendizado.

Veja só:

#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>

int
main (void)

{
int arquivos = 1;
DIR *dp;
struct dirent *ep;

dp = opendir ("./");
if (dp != NULL)
{
while (ep = readdir (dp)){
//puts (ep->d_name);
arquivos++;
}
printf("O numero de arquivos e diretorios e = %d", arquivos);
(void) closedir (dp);
}

else
perror ("Couldn't open the directory");

return 0;
}






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts