file_find Problem.. zeigt nicht alle Dateien/Ordner an

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • file_find Problem.. zeigt nicht alle Dateien/Ordner an

    Ich habe also folgendes Problem:
    Ich durchsuche mit folgendem Code einen Kompletten Ordner (erstmal werden nur Dateien und Ordner gezählt) :
    Spoiler anzeigen

    GML-Quellcode

    1. dir=get_directory(""); //läst den Benutzer einen Ordner öffnen
    2. dirs_c=0;
    3. files_c=0;
    4. //setzt die Zähler wieder auf null
    5. //--------------SUCHE START
    6. file = file_find_first(dir+"*.*",fa_readonly+fa_hidden+fa_sysfile+fa_volumeid+fa_archive);
    7. //startet die Suche.. (alle Dateien!)
    8. if (file != "")
    9. {
    10. ds_list_add(list_files,file); //fügt die DATEI der Liste hinzu
    11. files_c+=1; //erhöht den DATEI-Zähler um eins
    12. while (1)
    13. {
    14. file = file_find_next(); //nächste Datei
    15. if (file != "")
    16. {
    17. ds_list_add(list_files,file); //fügt die DATEI der Liste hinzu
    18. files_c+=1; //erhöht den DATEI-Zähler um eins
    19. }
    20. else {break;}
    21. }
    22. }
    23. file_find_close();
    24. //Beendet die Suche
    25. file = file_find_first(dir+'*',fa_directory);
    26. //startet die Suche nach Ordnern
    27. if (file != "")
    28. {
    29. if (ds_list_find_index(list_files,file) = -1) && (file != ".") && (file != "..")
    30. {
    31. ds_list_add(list_dirs,file); //fügt den ORDNER der Liste hinzu
    32. dirs_c+=1; //erhöht den ORDNER-Zähler um eins
    33. }
    34. while (1)
    35. {
    36. file = file_find_next(); //nächste Datei
    37. if (file != "")
    38. {
    39. if (ds_list_find_index(list_files,file) = -1) && (file != ".") && (file != "..")
    40. {
    41. ds_list_add(list_dirs,file); //fügt den ORDNER der Liste hinzu
    42. dirs_c+=1; //erhöht den ORDNER-Zähler
    43. }
    44. } else {break;}
    45. }
    46. }
    47. file_find_close();
    48. //Beendet die Suche
    49. //--------------SUCHE ENDE
    Alles anzeigen


    Ich hab jetzt das Problem, dass nicht alle Dateien bzw. Ordner gezählt werden..
    Ich hab schon ziemlich viel rumprobiert (ich hab den Code sogar schon komplett neu geschrieben), aber entweder hat sich nie etwas verändert, oder es passierte gar nichts..

    Kann mir da jemand helfen?

    Ich bin hier schon am verzweifeln :D



    LG
    -Tobi
  • *klaut Codeschnipsel aus desktopy*
    Hier ist etwas, was bei mir immer sehr gut funktioniert hat:

    GML-Quellcode

    1. ds_list_clear(list_files);
    2. ds_list_clear(list_dirs);
    3. file = file_find_first(dir+'*',0);
    4. if (file != "") {
    5. ds_list_add(list_files,file);
    6. while (1) {
    7. file = file_find_next();
    8. if (file != "") {ds_list_add(list_files,file);}
    9. else {break;}
    10. }
    11. }
    12. file_find_close();
    13. file = file_find_first(dir+'*',fa_directory);
    14. if (file != "") {
    15. if (ds_list_find_index(list_files,file) = -1) &&
    16. (file != ".") && (file != "..")
    17. {ds_list_add(list_dirs,file);}
    18. while (1) {
    19. file = file_find_next();
    20. if (file != "") {
    21. if (ds_list_find_index(list_files,file) = -1) &&
    22. (file != ".") && (file != "..")
    23. {ds_list_add(list_dirs,file);}
    24. } else {break;}
    25. }
    26. }
    27. file_find_close();
    Alles anzeigen
    Sieht ganz ähnlich aus wie deines.. wüsste auf die schnelle nicht, was daran falsch ist :D
    Achja: Du kannst mit ds_list_size() die Anzahl der Einträge rauskriegen - so brauchst du keine Zählervariablen ;D
  • Oh ok danke!
    :thumbsup:

    Ich erinner mich.. du hast mir schonmal einen veränderten Code von Desktopy gegeben.. (aber nicht so, wie ich den jetzt brauche ^^)
    :thumbsup: :thumbsup:

    Werd's dann mal ausprobieren.. ^^



    €DIT:
    Also ich bekomm das nicht hin!
    Ich hab jetzt Copy's Code genommen und den eigendlich so übernommen, aber der will nicht.
    Wenn ich jetzt über den Dateiexplorer z.B. in den Windows Ordner gehe: ("C:\Windows\"), zeigt der unten an: "125 Elemente".
    Wenn ich den aber über Copy's Code mache, zeigt der bei Ordner 1 und bei Dateien 0 an. :?:

    Ich häng das einfach mal an (sorry ist aber nur ne gmk ^^ ).
    Dateien
    • example.zip

      (15,53 kB, 149 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Tobi ()

  • Das hatte ich bereits.. ;(

    Ich werd mich NOCHMAL ransetzen..
    Ma gucken, ob das dann klappt..

    Das Problem war, dass

    GML-Quellcode

    1. dir=get_directory("");

    bei Auswahl des z.B Windows Ordners nicht "C:\Windows\" sondern "C:\Windows" ausgibt.. der \ (Backslash hat gefehlt.. ^^