Datei lässt sich mit geöffneter GUI nicht löschen

  • Hallo,

    würdet ihr mir bitte anhand meinem Skript-Beispiel erklären was ich falsch mache /und/oder wie man eine Text-Datei, welche mit AutoIt in Benutzung ist, bei geöffneter GUI löschen kann?

    Hinweis: Das Skript benötigt Adminrechte, also steht ein #RequireAdmin am Anfang des Skriptes.

    Zum Schluss schlägt das FileDelete fehl. Auch im Explorer kann ich die Datei nicht löschen.

    Hinweis 2: Die Text-Datei löscht sich erst dann von selbst, wenn das Skript beendet wird.
    Kann man das irgendwie ändern, sodass sich die Datei auch bei geöffneter GUI überschreiben oder löschen lässt?


  • FileDelete() braucht einen Pfad kein Handle.

    Wenn du eine Datei überschreiben möchtest musst du, dass Overwrite-Flag bei FileOpen() angeben.
    Schau dir am Besten die Doku an. KA welcher Wert das genau ist.
    Du musst nur die Datei schließen (FileClose()) und dann FileOpen(), mit dem Flag, aufrufen und schon hast du deine leere Datei.

  • FileDelete() braucht einen Pfad kein Handle.

    das interpretiere ich aus der Hilfe aber anders.

    Das Overwrite-Flag bei FileOpen() habe ich mit "2" angegeben.

    Mit FileOpen() erstelle ich ja erst in meinem Beipiel die Datei. Anschließend schließe ich sie wieder.

    Also kurzum, ich habe Deine Ratschläge getestet aber mit dem selben negativen Erfolg. Die Text-Datei scheint solange AutoIt geöffnet ist, schreibgeschützt zu sein. Aber wie bekomme ich das weg?

  • Teste dieses Script:

  • Hallo autoBert,

    hab' meinen Fehler erkannt. $hFile=FileOpen($datei, 2+32)

    wobei ich allerdings mal wieder nicht wirklich kapieren kann, warum bei meiner Skript-Version das erste Mal nach dem Aufruf die Textdatei einwandfrei geöffnet wurde aber dann nicht überschrieben oder gelöscht werden konnte.

    Vielen Dank für die kompetente Hilfe!