Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda urgente. C bajo Linux.

Estas en el tema de Ayuda urgente. C bajo Linux. en el foro de C/C++ en Foros del Web. Escribir un programa que visualice (dado un determinado directorio como parámetro): - El nombre de los ficheros y directorios que contiene. - Un mensaje indicando ...
  #1 (permalink)  
Antiguo 14/06/2008, 13:59
 
Fecha de Ingreso: junio-2008
Mensajes: 1
Antigüedad: 15 años, 10 meses
Puntos: 0
Ayuda urgente. C bajo Linux.

Escribir un programa que visualice (dado un determinado directorio como parámetro):
- El nombre de los ficheros y directorios que contiene.
- Un mensaje indicando si hay:
- mas ficheros que directorios
- mas directorios que ficheros
- igual de ambos

Consigo el listado, pero no me distingue ficheros de directorios y los echa en el mismo saco. No sé si estoy usando bien los campos o me lo estoy inventando. Mi código es el siguiente:

#include <stdio.h>
#include <dirent.h>
#include <unistd.h>
#include <sys/stat.h>

int main(int argc,char*argv[])
{
DIR *directorio;
struct dirent *fichero;
struct stat atr;

int fichs=0;
int direcs=0;

directorio=opendir(argv[1]);
fichero=readdir(directorio);
while(fichero!=NULL)
{
printf("Nombre: %s\n", fichero->d_name);
if(S_ISDIR(atr.st_mode)!=0)
direcs++;
else
fichs++;
fichero=readdir(directorio);
}//Fin while
closedir(directorio);

printf("\nHay %d ficheros y %d directorios.\n",fichs,direcs);
if(direcs>fichs)
printf("\nHay mas directorios que ficheros.\n");
else if(direcs<fichs)
printf("\nHay mas ficheros que directorios.\n");
else
printf("\nTienen los mismos.\n");
return 0;
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:00.