![]() |
DeleteFile - Error 2/32
Hallo,
Ich wollte mit dem Befehl
Delphi-Quellcode:
eine von mehreren Dateien löschen, die ich vorher in verschachtelten Schleife erstellt habe, wobei i,j und k für Jahr-Monat-Tag standen (hier in dem Fall stehen die Variablen auf 2007, 1 und 1).
deletefile('E:\Dokumente\'+IntToStr(i)+'-'+IntToStr(j)+'-'+IntToStr(k)+'.txt');
Gestern noch lief das Programm, löschte die datei jedoch einfach nicht und mit getlasterror habe ich "32" ausgegeben bekommen. Heute habe ich es, ohne das ich mich erinnere, es verändert zu haben, es erneut ausgeführt, was allerdings wegen dem [Fehler] Inkompatible Typen: 'String' und PAnsiChar' nicht mehr funktionierte (???). Ändere ich die Anweisung in
Delphi-Quellcode:
lässt sich das Programm ausführen, löscht die Datei aber auch nicht und hier erscheint der Fehler "2" durch getlasterror.
deletefile('E:\Dokumente\2007-1-1.txt')
Was liegt denn der unterschied zwischen
Delphi-Quellcode:
und
deletefile('E:\Dokumente\2007-1-1.txt')
Delphi-Quellcode:
wenn doch i=2007, j=1 und k=1 sind? Und warum lässt sich die Datei auf keine der beiden Wege löschen (sie ist nicht leer)?
deletefile('E:\Dokumente\'+IntToStr(i)+'-'+IntToStr(j)+'-'+IntToStr(k)+'.txt')
|
Re: DeleteFile - Error 2/32
Fehler 2: File not found. Das Pfad war falsch.
Fehler 32: Sharing violation. Die Datei befand sich in Benutzung. Es gibt 2 verschiedene DeleteFile Funktionen. Eine definiert in der Unit Windows und erfordert einen PChar und eine definiert in SysUtils die einen String verlangt. Welche genau verwendet wird, hängt von der Reihenfolge ab in der der Compiler die Units lädt. Entsprechend wäre es sinnvoll (da du die String Variante aufrufst) sysutils.DeleteFile zu benutzen und dem Compiler somit mitzuteilen, daß Du explizit die Funktion aus sysutils verwenden möchtest. Bei Funktionen denen String Konstanten übergeben werden, übernimmt übrigens Compiler Magic die Konvertierung in einen PChar. Daher funktioniert das DeleteFile('<whatever>'), allerdings der Aufruf mit einem zusammengesetzten String nicht. |
Re: DeleteFile - Error 2/32
Erstens: inkompatible Typen hieße, dass du auf PChar casten musst. Eigentlich ist DeleteFile allerdings eine Funktion, die einen String erwartet, da sollte das nicht passieren, es sei denn du hast in der uses die Reihenfolge geändert.
Zweitens: Wie wäre es, wenn du einmal schaust, was der Fehler 32 z.B. bedeutet? :roll: Zitat:
![]() |
Re: DeleteFile - Error 2/32
[ot]Du warst auch schon mal schneller Sebastian ;).[/ot]
|
Re: DeleteFile - Error 2/32
Danke, es klappt mit sysutils.DeleteFile :)
|
AW: DeleteFile - Error 2/32
Danke, das war DER Tip. Hat mich aber Stunden beim Fehler suchen gekostet!!!!:lol:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz