Problema con la funzione opendir() C

soulbw

Utente Attivo
9
0
Ciao a tutti, sto facendo un programmino in C che sfrutta la funzione opendir per aprire la directory che gli passo da input e contare i file al suo interno....solo che forse non passo da input l-argomento giusto.....qualcuno sa come si passa un percorso a opendir?
(io ho provato con ad esempio: /home/soul/Documents e corretto? )
cmq l-errore restituito e` No such file or directory;

questa e` la funz:
int conta_file(char *name)//funzione di conteggio dei file nel direttorio..
{
DIR *dir;
struct dirent *dd;

int count = 0;
dir = opendir(name);
if( dir == NULL)
{
fprintf(stdout,"%s opendir...\n", strerror(errno));
exit(6);
}

while((dd = readdir(dir))!= NULL)
{
printf("Trovato il file %s\n", dd->d_name);
count++;
}
printf("\nNumero totale di file %d", count);

if(closedir(dir)== -1);
{
fprintf(stdout,"%s closedir...\n", strerror(errno));
exit(7);
}

return count;
}

Grazie in anticipo per la risposta
 

cawletto

Utente Attivo
475
25
CPU
i5 750
HDD
1 TB
RAM
6 GB
GPU
GXT 460 SE 1GB overclocked
Monitor
Samsung LCD 1280x1024
PSU
Cooler Master Silent Pro M 600 W
Case
HP
OS
Windows 7-64 bit
sei sicuro ke la cartella esiste veramente ??
Comunque per controllarlo posta tutto il codice..
ciao e auguri di buona pasqua !
 

cawletto

Utente Attivo
475
25
CPU
i5 750
HDD
1 TB
RAM
6 GB
GPU
GXT 460 SE 1GB overclocked
Monitor
Samsung LCD 1280x1024
PSU
Cooler Master Silent Pro M 600 W
Case
HP
OS
Windows 7-64 bit
Guarda ho scritto questo codice (premetto che il mio c è un pò arrugginito xD) implementando la tua funzione e passandogli la stringa "C:\" e tutto funziona.. -.-

Codice:
#include<stdio.h>
#include<stdlib.h>
#include<dirent.h>
main ()
{
    printf("Cartella da sfogliare: ");
    char  *dir;
    scanf("%s", &dir);
    printf(&dir);
    conta_file(&dir);
}

int conta_file(char *name)//funzione di conteggio dei file nel direttorio..
{
DIR *dir;
struct dirent *dd;

int count = 0;
dir = opendir(name);
if( dir == NULL)
{
fprintf(stdout,"%s opendir...\n", strerror(errno));
exit(6);
}

while((dd = readdir(dir))!= NULL)
{
printf("Trovato il file %s\n", dd->d_name);
count++;
}
printf("\nNumero totale di file %d", count);

if(closedir(dir)== -1);
{
fprintf(stdout,"%s closedir...\n", strerror(errno));
exit(7);
}

return count;
}
Ho provato ad inserire una dir inesistente e mi esce il tuo stesso mess d'errore..
Quindi sono praticamente certo che la dir che scrivi tu non esiste.. spero di esserti stato utile :)
 

soulbw

Utente Attivo
9
0
Ciao, Auguri anche a te!!
ho trovato l`erroraccio ehehehehehehehe!!!.....infatti la funz va bene, il problema e` che gli passavo come argomento una stringa presa da input con fgets...e non mi ricordavo che
questa stronzissima funzione prende come valore anche il \n:cav: !!!!!!

Grazie lo stesso per l`aiuto.
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!