User Tag List

Resultados 1 al 4 de 4

Tema: Listar directorio

  1. #1

    Fecha de ingreso
    Apr 2007
    Ubicación
    Rostovillar
    Mensajes
    3,781
    Mencionado
    11 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    1,016
    Agradecer Thanks Received 
    407
    Thanked in
    Agradecido 256 veces en [ARG:2 UNDEFINED] posts

    Listar directorio

    Buenas, estoy intentando listar el contenido de un directorio y me encuentro en un dilema, estoy usando el SDK oficial de Windows y no hay una librería que haga esto, bueno, si la hay, hay 2 una para el entorno de windows y otra para la wiz.

    ¿Sabe alguien si hay alguna función que haga este trabajo en los dos entornos? no me gustaría tener que depurar en la wiz, es un infierno.
    Buy this car to drive to work. Drive to work to pay for this car.

  2. #2

    Fecha de ingreso
    Jun 2004
    Mensajes
    1,229
    Mencionado
    4 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    2
    Thanked in
    Agradecido %1$s veces en 1 post
    Código:
    static void game_list_init(void)
    {
    	DIR *d=opendir("isos");
    	if (d)
    	{
    		struct dirent *actual=readdir(d);
    		while(actual)
    		{
    			if (((strstr(actual->d_name,".bin")!=NULL) ||
    				(strstr(actual->d_name,".img")!=NULL) ||
    				(strstr(actual->d_name,".mdf")!=NULL) ||
    				(strstr(actual->d_name,".iso")!=NULL)) &&
    				(strstr(actual->d_name,".cfg")==NULL))
    			{
    				strcpy(games[game_num_avail],"isos/");
    				strcat(games[game_num_avail],actual->d_name);
    				game_num_avail++;
    			}
    			actual=readdir(d);
    		}
    		closedir(d);
    	}
    	d=opendir("exec");
    	if (d)
    	{
    		struct dirent *actual=readdir(d);
    		while(actual)
    		{
    			if (strstr(actual->d_name,".exe")!=NULL)
    			{
    				strcpy(games[game_num_avail],"exec/");
    				strcat(games[game_num_avail],actual->d_name);
    				game_num_avail++;
    			}
    			actual=readdir(d);
    		}
    		closedir(d);
    	}
    }

  3. #3

    Fecha de ingreso
    Apr 2007
    Ubicación
    Rostovillar
    Mensajes
    3,781
    Mencionado
    11 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    1,016
    Agradecer Thanks Received 
    407
    Thanked in
    Agradecido 256 veces en [ARG:2 UNDEFINED] posts
    Con la biblioteca dirent.h ¿verdad? gracias monstruo.
    Buy this car to drive to work. Drive to work to pay for this car.

  4. #4

    Fecha de ingreso
    Jun 2004
    Ubicación
    Pinto (MADRID)
    Mensajes
    1,084
    Mencionado
    12 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    5
    Agradecer Thanks Received 
    153
    Thanked in
    Agradecido 105 veces en [ARG:2 UNDEFINED] posts
    Parece que yo me he encontrado con el mismo problema, aunque di con la solución rápidamente. El caso es que a mí esto me funciona al compilar en Windows y al compilar para GP2X. Cuando compilo para Wiz me peta.

    Es muy extraño, porque si desde un programa creo un directorio y leo el contenido, funciona perfectamente. Pero si el directorio ya está creado y leo el contenido, en cuanto llega a la instrucción readdir() se cuelga.

    No sé si es un tema de permisos (que en FAT no debería haber) o da algún tipo de error que no puedo localizar.

    Estoy compilando con las opciones: -lSDL_mixer -lSDL_ttf -lfreetype -lsmpeg -lvorbisidec -lz -lSDL -lpthread, y en "Escape from Minos" me funcionan perfectamente.

    No uso el SDK oficial porque los programas compilados en Windows no funcionan.

    ¿Alguien tiene alguna idea de por dónde mirar? Repito, en Windows y GP2X funciona sin problemas... en Wiz no.
    < - >
    Bueno... después de un montón de días comiéndome la cabeza, resulta que el readdir() peta cuando el directorio está escrito con mayúsculas Con minúsculas funciona sin problemas.

    Al menos he arreglado la idiotez esta. A ver si acabo el programa.
    Última edición por saboteur; 09/08/2010 a las 19:38 Razón: Edición automática anti doble-post.

Etiquetas para este tema

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •