AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DeleteFile - Error 2/32

Ein Thema von Delphi_gn7 · begonnen am 11. Jul 2009 · letzter Beitrag vom 5. Jan 2015
Antwort Antwort
Delphi_gn7

Registriert seit: 21. Mai 2009
59 Beiträge
 
Delphi 7 Personal
 
#1

DeleteFile - Error 2/32

  Alt 11. Jul 2009, 16:56
Hallo,

Ich wollte mit dem Befehl
deletefile('E:\Dokumente\'+IntToStr(i)+'-'+IntToStr(j)+'-'+IntToStr(k)+'.txt'); 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).

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 deletefile('E:\Dokumente\2007-1-1.txt') lässt sich das Programm ausführen, löscht die Datei aber auch nicht und hier erscheint der Fehler "2" durch getlasterror.


Was liegt denn der unterschied zwischen deletefile('E:\Dokumente\2007-1-1.txt') und deletefile('E:\Dokumente\'+IntToStr(i)+'-'+IntToStr(j)+'-'+IntToStr(k)+'.txt') 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)?
Andreas
  Mit Zitat antworten Zitat
Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#2

Re: DeleteFile - Error 2/32

  Alt 11. Jul 2009, 17:08
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.
Fridolin Walther
"While Mr. Kim, by virtue of youth and naiveté, has fallen prey to the inexplicable need for human contact, let me step in and assure you that my research will go on uninterrupted, and that social relationships will continue to baffle and repulse me."
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.347 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: DeleteFile - Error 2/32

  Alt 11. Jul 2009, 17:14
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?
Zitat:
The process cannot access the file because it is being used by another process.
(Entweder hier: http://msdn.microsoft.com/en-us/library/ms681382.aspx oder via SysErrorMessage im Programm)
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#4

Re: DeleteFile - Error 2/32

  Alt 11. Jul 2009, 17:20
[ot]Du warst auch schon mal schneller Sebastian .[/ot]
Fridolin Walther
"While Mr. Kim, by virtue of youth and naiveté, has fallen prey to the inexplicable need for human contact, let me step in and assure you that my research will go on uninterrupted, and that social relationships will continue to baffle and repulse me."
  Mit Zitat antworten Zitat
Delphi_gn7

Registriert seit: 21. Mai 2009
59 Beiträge
 
Delphi 7 Personal
 
#5

Re: DeleteFile - Error 2/32

  Alt 12. Jul 2009, 09:23
Danke, es klappt mit sysutils.DeleteFile
Andreas
  Mit Zitat antworten Zitat
meike52

Registriert seit: 10. Mär 2012
1 Beiträge
 
#6

AW: DeleteFile - Error 2/32

  Alt 5. Jan 2015, 06:54
Danke, das war DER Tip. Hat mich aber Stunden beim Fehler suchen gekostet!!!!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz