Buenas...<br><br>Por qué este código no diferencia entre archivos y directorios, el if siempre sale true.<br><br>En el archivo de salida se ve que siempre me devuelve 16895 tanto para ficheros como directorios<br><br>/+++++++++++++++++++++++++++++++++++++++/
<br><br>#include <dirent.h><br>#include <stdlib.h><br>#include <stdio.h><br>#include <sys/stat.h><br>#include <iostream><br><br>using namespace std;<br><br>int main(int argc, char * argv[])<br>
{<br> DIR *pdir;<br> struct dirent *pent;<br> struct stat datosFichero;<br> int fd;<br> FILE * salida;<br> <br> salida = fopen("Ruta para el fichero de salida\\Salida.txt", "w+");<br>
pdir=opendir("Directorio");<br> <br> while ((pent=readdir(pdir)))<br> {<br> stat (pent->d_name, &datosFichero);<br> if (S_ISDIR (datosFichero.st_mode)!=0) <br> cout << "[" << pent->d_name << "] es un directorio\n" << endl;
<br> else <br> cout << "[" << pent->d_name << "] es un archivo\n" << endl;<br> <br> fprintf(salida,"[%s] es [%hd]\n", pent->d_name,
datosFichero.st_mode);<br> }<br> fclose(salida);<br>closedir(pdir);<br> cin.get();<br> return 1;<br>}<br><br><br>/+++++++++++++++++++++++++++++++/<br><br>Gracias<br>