[C con Clase] Diferenciar entre ficheros y directorios

djj dsjnsdf udayajivi en gmail.com
Lun Nov 26 22:00:39 CET 2007


Buenas...

Por qué este código no diferencia entre archivos y directorios,  el if
siempre sale true.

En el archivo de salida se ve que siempre me devuelve 16895 tanto para
ficheros como directorios

/+++++++++++++++++++++++++++++++++++++++/

#include <dirent.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/stat.h>
#include <iostream>

using namespace std;

int main(int argc, char * argv[])
{
    DIR *pdir;
    struct dirent *pent;
    struct stat datosFichero;
    int fd;
    FILE * salida;

    salida = fopen("Ruta para el fichero de salida\\Salida.txt", "w+");
    pdir=opendir("Directorio");

    while ((pent=readdir(pdir)))
    {
        stat (pent->d_name, &datosFichero);
        if (S_ISDIR (datosFichero.st_mode)!=0)
            cout << "[" << pent->d_name << "] es un directorio\n" << endl;
        else
            cout << "[" << pent->d_name << "] es un archivo\n" << endl;

            fprintf(salida,"[%s] es [%hd]\n", pent->d_name,
datosFichero.st_mode);
    }
 fclose(salida);
closedir(pdir);
    cin.get();
    return 1;
}


/+++++++++++++++++++++++++++++++/

Gracias
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20071126/3ea705eb/attachment.html>


Más información sobre la lista de distribución Cconclase