Junio 19, 2020, 04:01:07 PM Ultima modificación: Junio 19, 2020, 04:46:40 PM por kostra
Intento hacer lo que dice el título, teniendo la carpeta "maps" con varios archivos ini, necesito agarrar todos los nombres y meterlos en una array para previo uso, he encontrado funciones file_find_ y he mirao por google, gmc, reddit, intento implementarlo pero no me sale

mi código actual:
[gml]
if directory_exists(working_directory+"/maps") {
    var i=0;
    var dir = file_find_first(working_directory+"/maps/",fa_readonly);
    while (string_length(dir) > 0) {
        file = dir;
        show_debug_message(string(file));
        dir = file_find_next();
        i++;
        }
    file_find_close();
    } else show_debug_message("nope")
[/gml]

he probado el fa_readonly, el fa_directory, pero no entiendo eso del todo, tampoco entiendo lo del string_lenght, también probé con dir != "" que vi en otro ejemplo... el manual de gm no te sale ningún ejemplo completo, nada más que una linea que no me ayuda nada... si alguien me dice cómo hacerlo bien y de paso si me explica de forma que lo ENTIENDA, pues se agradece
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

solucionado, creo que me faltaba poner un asterisco (*) que suele significar "all" al final del primer argumento de file_find_first... no lo acabo de entender, pero ya me funca perfectamente, si alguien que entienda le apetece explicar con detalle, aquí está el tema abierto, pero el error quedó solucionado

[gml]
///cargar titulos

if directory_exists(working_directory+"/maps") {
    var i=0;
    var dir = file_find_first(working_directory+"/maps/*",fa_directory);
    while (string_length(dir) > 0) {
        file = dir;
        dir = file_find_next();
        i++;
        }
    file_find_close();
    }
[/gml]
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

Pues sí, su funcionamiento no es muy intuitivo. Creo que si no se usa "*" la función buscará el archivo con el nombre exacto, pero si se ha indicado el nombre de un directorio con "/" al final no se encontrarán coincidencias, porque los archivos no pueden llevar "/" en el nombre.

Sería conveniente cambiar el segundo argumento a 0 (en lugar de fa_directory), para que no se fije en los atributos.

no entiendo lo último, un por qué no estaría mal, de dónde sale el 0? qué significa fa_directori? a qué huelen las nubes? xd
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

fa_directory significa "file attribute: directory"
El manual dice que si no queremos especificar atributos el segundo argumento debe ser 0
Hice una prueba: con 0 se encuentran solo los archivos, y con fa_directory se encuentran archivos y directorios. Aún sigue siendo poco intuitivo.
¿A qué saben las nubes?, no lo se, pero posiblemente google tiene la respuesta.