Entwickler-Ecke

Dateizugriff - Nach CreateFile Datei wieder löschen?


Pyr0cracker - Mi 26.03.03 11:05
Titel: Nach CreateFile Datei wieder löschen?
Hi, ich habe folgendes Problem:
Mein Programm erstellt mit CreateFile('bla') dateien. ich möchte sie aber danach sofort wieder löschen.

Quelltext
1:
2:
3:
4:
createfile('bla.bla');
showmessage('datei wurde erstellt');
deletefile('bla.bla');
showmessage('datei wurde gelöscht.');
wenn ich nur deletefile mache und die datei schon existiert, funzt es.
und wenn ich die Datei erstelle, das programmbeende und wieder starte, kann ich sie auch löschen.
Nur wenn sie direkt hintereinandererstellt und wieder gelöscht werden soll gehts nicht.

Ich freue auf Antworten.


Teutobod - Mi 26.03.03 11:37

Hallo Pyr0cracker!

createfile gibt dir einen Handle zurück und über diesen Handle musst du die Datei erst schließen bevor du sie löschen kannst.


Quelltext
1:
2:
3:
4:
5:
var FileHandle : Integer;

FileHandle := filecreate('c:\bla.bla');
FileClose(FileHandle);
if deletefile('c:\bla.bla') = true then showmessage('gelöscht');


mfg Teutobod


ShadowCaster - Mi 26.03.03 11:44

ich setz noch eines oben drauf:


Quelltext
1:
2:
3:
var FileHandle : Integer; 
FileClose(filecreate('c:\bla.bla')); 
if deletefile('c:\bla.bla') then showmessage('gelöscht');


Teutobod - Mi 26.03.03 11:53

So gehts natürlich auch. Aber verständlicher für ihn ist sicher meins. Er solls ja auch verstehen, nicht nur kopieren und verwenden. Auf den Rest wird er sicher noch draufkommen.
:D


ShadowCaster - Mi 26.03.03 11:59

sicher doch. Sollte doch nichts gegen deine Programmierkünste sein. So wie du es gemacht hast, ist der Code absolut verständlich und lesbar. :)

Ich persönlich bevorzuge die Variante, alles direkt durch die Funktionen zu pipen und deren Results direkt in einer Zeile zu verwenden.
So wie ich das sehe, geht es noch kürzer ohne Handle:


Quelltext
1:
2:
FileClose(filecreate('c:\bla.bla')); 
if deletefile('c:\bla.bla') then showmessage('gelöscht');


Teutobod - Mi 26.03.03 12:03

In deinem vorherigen Post hast du die Variable eh nicht verwendet, nur versehentlich stehen gelassen. :wink:


Pyr0cracker - Mi 26.03.03 17:55

Wunderbar!
Danke für Beides


wulfskin - Mi 26.03.03 18:56

Nur mal so nebenbei: Wür was brauchst du überhaupt diese "komische" Methode?