Entwickler-Ecke

Dateizugriff - Fehler beim Löschen von Dateien und Verzeichnissen


lyrix - Sa 19.02.05 16:56
Titel: Fehler beim Löschen von Dateien und Verzeichnissen
Hallo Leute, ich versuche über die Befehle Erase() und RmDir() Dateien bzw. Verzeichnisse zu löschen. Die Dateien werden auch gelöscht, aber es tritt trotzdem ein Fehler (I/O 103) auf. Das Löschen von Verzeichnissen funktioniert irgendwie gar nicht. Da kommt auch diese Fehlernummer. Ich kann mich erinnern, das es bei Turba Pascal mal eine Liste mit diesen Fehlermeldungen gab. Gibt es die bei Delphi auch? Oder kann mit vielleicht jemand sagen, wo ich da einen Fehler mache?

lg Torsten


Delete - Sa 19.02.05 17:04

Die gibt es immer noch in der Hilfe:
Zitat:

103 File not open


Ohne Code kann dir allerdings jetzt wohl nur der liebe Gott weiterhelfen.


Delete - Sa 19.02.05 17:17

Anstatt Erase() kannst du auch DeleteFile() benutzen, aber Luckie hat da schon Recht, ein bisschen Code wäre nicht schlecht..


lyrix - Sa 19.02.05 17:51

Hallo nochmal, hier ist mal der Code.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
Procedure   TdlgUSRdelete.evt_btnDelete(Sender : TObject);
Var WriteFile                                           : File;
    FileName                                            : String;
    Data                                                : TData;
Begin
  {$I+}
    If Mother.getFirstChild = Nil Then Else
    Begin
      Repeat
        FileName:=Manager^.Root + Mother.Text + '\' + Mother.getFirstChild.Text + '.lsn';
        AssignFile(WriteFile, FileName); Reset(WriteFile, $1); CloseFile(WriteFile);
        Erase(WriteFile); Data:=Mother.getFirstChild.Data; Dispose(Data, Destroy);
        Manager^.TreeView.Items.Delete(Mother.getFirstChild);
      Until Mother.getFirstChild = Nil;
    End;
    FileName:=Manager^.Root; Delete(FileName, Length(FileName), $1);
    ChDir(FileName);
    FileName:=FileName + '\' + Mother.Text;
    RmDir(FileName);
  {$I+}
  Data:=Mother.Data; Dispose(Data, Destroy);
  Manager^.TreeView.Items.Delete(Mother); Close;
End;


Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt.


Delete - Sa 19.02.05 20:34

Warum du kein Verzeichnis löschen kannst, kann ich dir nicht sagen, kann ich gerade nicht testen, aber beim Datei löschen probier mal statt:


Delphi-Quelltext
1:
2:
AssignFile(WriteFile, FileName); Reset(WriteFile, $1); CloseFile(WriteFile);  
Erase(WriteFile);



Delphi-Quelltext
1:
2:
AssignFile(WriteFile, FileName);
Erase(WriteFile);


irgendwo logisch, wenn Fehler 103 kommt oder?