AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi FileExists mit D2007 funktioniert nicht mehr - Hilfe
Thema durchsuchen
Ansicht
Themen-Optionen

FileExists mit D2007 funktioniert nicht mehr - Hilfe

Ein Thema von Cappuccino · begonnen am 13. Mai 2008 · letzter Beitrag vom 13. Mai 2008
Antwort Antwort
Cappuccino

Registriert seit: 25. Okt 2006
68 Beiträge
 
Delphi 6 Enterprise
 
#1

FileExists mit D2007 funktioniert nicht mehr - Hilfe

  Alt 13. Mai 2008, 09:40
Hi,
ich kann es nicht glauben, vermutlich bin ich blind.

FileExixts('E:\EigeneDateien\Sprachen\uVision\inc\ obd\2008_05_13\Master*.eds')

liefert bei D6 True
und bei D2007 Rad Studio ein FALSE

wenn ich die Wildcard * bei Master entferne, wird die Datei gefunden.
Die Wildcard wird aber benötigt.

Das D6 Projekt habe ich in D2007 Win 32 geladen und damit wurde das Projekt upgedatet. Das hat auch ganz gut funktioniert.
Dann noch ein abschließender Test - und rums.

was ich nachgeprüft habe:
Es wird auch sysUtils.FileExists verwendet
D2007 neu starten nützt nix

weiß jemand woran das liegt?

Gruß
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: FileExists mit D2007 funktioniert nicht mehr - Hilfe

  Alt 13. Mai 2008, 09:41
Also dass FileExists Wildcards unterstützt ist mir neu.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#3

Re: FileExists mit D2007 funktioniert nicht mehr - Hilfe

  Alt 13. Mai 2008, 09:50
Des Rätsels Lösung für Cappuccino ist:

http://qc.borland.com/wc/qcmain.aspx?d=49634

Dort ist dann auch zu entnehmen:
  • In ältern Delphi z.B. D5 oder D7 basiert die SysUtils.FileExists auf einem Aufruf von FileAge und damit auf FindFirstFile, also unterstützt FileExists hier auch - undokumentiert (!) - WildCards
  • Neuere Delphi nutzen in der SysUtils.FileExist die GetFileAttributes API, daher keine WildCards

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
Cappuccino

Registriert seit: 25. Okt 2006
68 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: FileExists mit D2007 funktioniert nicht mehr - Hilfe

  Alt 13. Mai 2008, 09:53
Vielen Dank für die Antwort, das beruhigt.
Jetzt muss ich nur noch schauen, wo mit Wildcards aufgerufen wird.

Gruß + Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#5

Re: FileExists mit D2007 funktioniert nicht mehr - Hilfe

  Alt 13. Mai 2008, 09:57
Schau doch mal in die D6 Quellen, das mit dem FileAge und bau Dir Deine eigenen MyFileExists... // Grüße / Martin
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: FileExists mit D2007 funktioniert nicht mehr - Hilfe

  Alt 13. Mai 2008, 09:57
Oder du implementierst dir eine eigene Funktion, die das alte Verhalten zeigt, obwohl dies eigentlich nicht unbedingt sinnvoll war.
Markus Kinzler
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#7

Re: FileExists mit D2007 funktioniert nicht mehr - Hilfe

  Alt 13. Mai 2008, 09:59
Ich verlinke mal zu einem Thread mit dem gleichen Thema:

http://www.delphipraxis.net/internal...ard+fileexists

Dort ist auch eine einfache Lösung von Christoph27:
If FileAge('C:\VCR\*.VCR') = -1 then .... Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#8

Re: FileExists mit D2007 funktioniert nicht mehr - Hilfe

  Alt 13. Mai 2008, 10:05
Bei älteren Delphi Versionen sieht FileExists() so aus:

Delphi-Quellcode:
function FileExists(const FileName: string): Boolean;
begin
  Result := FileAge(FileName) <> -1;
end;
Thomas
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

Re: FileExists mit D2007 funktioniert nicht mehr - Hilfe

  Alt 13. Mai 2008, 12:08
Zitat von Assertor:
Dort ist auch eine einfache Lösung von Christoph27:
If FileAge('C:\VCR\*.VCR') = -1 then ....
Hast du das auch ausprobiert? Denn das funktioniert mit Delphi 2007 nur unter Win9x. Ab Win2000 wird GetFileAttribuesEx aufgerufen, dass wiederum nicht auf FindFirstFile basiert.
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#10

Re: FileExists mit D2007 funktioniert nicht mehr - Hilfe

  Alt 13. Mai 2008, 13:09
Zitat von jbg:
Hast du das auch ausprobiert?
Nein, nur direkt aus dem themengleichen Thread übernommen und den Link eingefügt. Das erklärt auch den Unterschied "<> -1" und "= 1" bei der boolschen Evaluierung.

Ich selbst nutze eine Unicode-fähige Wildcardfunktion in unseren Sourcen.

Ich empfehle jetzt mal die TntUnicode-Ergänzung von Troy Wolbrink namens Tnt LX Controls.

Dort findet man dann in der Datei TntLXUtils.pas eine Funktions namens GetFilesInPath. Diese sammelt, Wildcard-fähig, auch in Unicode-Verzeichnissen, alle Dateien in eine (Tnt)StringList. Diese einfach auf Ihre Länge prüfen und in eine Funktion verpacken.

Schon hat man seine FileExists mit Ansi/Unicode-Support von Win9x bis Vista
Frederik
  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 04:36 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