mehrere txt-files gleichzeitig löschen

  • GM 8

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

  • mehrere txt-files gleichzeitig löschen

    Hallo Experten!



    Ich habe ein Problem. Ich will viele txt-Files mit einer Befehlzeile löschen.

    Mit file_delete(xxp01_*.txt') funktioniert dies leider nicht!


    Derzeit muss ich jede Datei einzeln löschen. Dies ist sehr mühsam wie im folgenden Beispiel angedeutet.
    file_delete('xxp01.txt');
    file_delete('xxp01_0_01.txt');
    file_delete('xxp01_0_02.txt');
    file_delete('xxp01_0_03.txt');
    file_delete('xxp01_1a1.txt');
    file_delete('xxp01_1a2.txt');
    file_delete('xxp01_1a3.txt');
    file_delete('xxp01_1a4.txt');
    file_delete('xxp01_1a5.txt');
    file_delete('xxp01_1a6.txt');
    file_delete('xxp01_1a7.txt');
    file_delete('xxp01_1a8.txt');

    usw.



    Gibt es eine bessere Möglichkeit?

    Ich würde mich sehr freuen, wenn es doch eine einfachere Lösung gäbe.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von hubsl ()

  • Also es kommt drauf an wo und ob du vllt noch andere .txt dateien in diesem ordner gespeichert hast... also ich hab z.b. das abzählen meiner dateien so gelösst:

    GML-Quellcode

    1. for(i = 1; i >= 0; i+=1)
    2. {
    3. if i == 1
    4. {
    5. global.nameofspiel[i] = string(file_find_first(working_directory + "\Eigene Levels\*.txt", fa_sysfile));
    6. }
    7. else
    8. {
    9. global.nameofspiel[i] = string(file_find_next());
    10. }
    11. if global.nameofspiel[i] == "" {exit; } else {global.eigenelevelsanzahl += 1; }
    12. }
    Alles anzeigen

    Das gibt mir aus wieviele Spiele in dem Ordner sind und wie sie heißen, jetzt könntest du theoretisch das so machen

    GML-Quellcode

    1. for(i = 1; i >= 0; i+=1)
    2. {
    3. if i == 1
    4. {
    5. global.nameofspiel[i] = string(file_find_first(working_directory + "\Eigene Levels\*.txt", fa_sysfile));
    6. }
    7. else
    8. {
    9. global.nameofspiel[i] = string(file_find_next());
    10. }
    11. if global.nameofspiel[i] == "" {exit; } else {file_delete(nameofspiel[i]); }
    12. }
    Alles anzeigen


    nicht getestet sollte aber gehen, solange du keine anderen textdokumente in dem Ordner hast... :)

    MfG Rodrog
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Ergo: Je mehr Käse, desto weniger Käse.
  • Danke, leider hilft mir dies nicht weiter

    Es sind sind sehr sehr viele txt-files im selben Ordner und davon will ich eine bestimmte Gruppe mit den selben Anfangsbuchstaben löschen.

    In diesem Falle eben (xxp01_*.txt). In einem anderen Fall (xxp07_*.txt).



    MfG
    Hubsl

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von hubsl ()

  • Hmmm. Es gibt dann halt noch eine Möglichkeit, ich weiß zwar nicht ob du sie abspeichern lest, aber wenn ja speicher sie doch einfach auf .sav oder so, und mach dann beim code

    GML-Quellcode

    1. for(i = 1; i >= 0; i+=1)
    2. {
    3. if i == 1 { global.nameofspiel[i] = string(file_find_first(working_directory + "\Eigene Levels\*.sav", fa_sysfile));
    4. }
    5. else
    6. {
    7. global.nameofspiel[i] = string(file_find_next());
    8. }
    9. if global.nameofspiel[i] == "" {exit; } else {file_delete(nameofspiel[i]); } }


    Oder du gibst die dateien in einen extra ordner, andere Ideen hab ich nicht sry

    MfG Rodrog

    Edit: Nicht getestet



    Also ne das musst du per hand läschen, weil du kannst nicht zumindest weiß ichs nicht sie so löschen,

    GML-Quellcode

    1. i = 1;
    2. a = "xxp0" + string(i) + "_0" + string(i)...
    3. file_delete(a);


    Das klappt glaub nicht so, und wenn ist das kompliziert als es per hand zu machen, wenn mir noch was einfällt werd ichs schreiben


    Gerade was eingefallen, wie were es mit

    GML-Quellcode

    1. j = welche Kategorie gelöscht werden soll;
    2. for(i = 1; i >= 0; i+=1)
    3. {
    4. if i == 1 { global.nameofspiel[i] = string(file_find_first(working_directory + "\Eigene Levels\xxp0" + string(j) + "_*.txt", fa_sysfile));
    5. }
    6. else { global.nameofspiel[i] = string(file_find_next());
    7. }
    8. if global.nameofspiel[i] == "" {exit; } else {file_delete(nameofspiel[i]); }
    9. }


    Ich glaub es klappt solange nicht mehr als 10 sind
    MfG Rodrog

    P.S.: Sorry das ich so oft editiert habe...
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Ergo: Je mehr Käse, desto weniger Käse.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Rodrog ()

  • Danke!

    Ich habe mir das Ganze wesentlich einfacher vorgestellt.

    Ich werde nun weiterhin alle Textdadeien, welche ich löschen will, einzeln mit genauer Nanmensbezeichnung löschen.



    Vielleicht gibt es irgendwann eine einfache Lösung für mein Problem.



    MfG

    Hubsl
  • Danke!!!! jetzt funktioniert es

    Super! Genau das wollte ich. Den Ordner konnte ich weglassen, denn es spielt sich alles im selben Ordner ab.



    Hier mein tadellos funktionierender Skript:

    file=file_find_first('msp01*.txt',noone)
    while !(file="")
    {
    file_delete(''+file)
    file=file_find_next()
    }



    Danke nochmals für die rasche Hilfe

    Liebe Grüße

    Hubsl