AGB  ·  Datenschutz  ·  Impressum  







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

Wie arbeitet FileExists intern?

Ein Thema von richard_boderich · begonnen am 25. Sep 2007 · letzter Beitrag vom 25. Sep 2007
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#1

Wie arbeitet FileExists intern?

  Alt 25. Sep 2007, 13:01
Hallo

Ich habe ein Problem mit der FileExists Funktion. Kann mir eventuell jemand sagen, wie diese Funktion intern arbeitet bzw. welche Api's dazu benutzt werden?
Danke schonmal im vorraus.

Gruß Richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#2

Re: Wie arbeitet FileExists intern?

  Alt 25. Sep 2007, 13:07
Hallo,

die Funktion versucht einfach, mittels der Funktion 'GetFileAttributes' die Dateiattribute der im Paramteter übergebenen Datei abzufragen. Je nach Rückgabewert ist das Ergebnis von FileExists True oder False.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Wie arbeitet FileExists intern?

  Alt 25. Sep 2007, 13:08
Delphi 5:
Delphi-Quellcode:
function FileAge(const FileName: string): Integer;
var
  Handle: THandle;
  FindData: TWin32FindData;
  LocalFileTime: TFileTime;
begin
  Handle := FindFirstFile(PChar(FileName), FindData);
  if Handle <> INVALID_HANDLE_VALUE then
  begin
    Windows.FindClose(Handle);
    if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then
    begin
      FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime);
      if FileTimeToDosDateTime(LocalFileTime, LongRec(Result).Hi,
        LongRec(Result).Lo) then Exit;
    end;
  end;
  Result := -1;
end;

function FileExists(const FileName: string): Boolean;
begin
  Result := FileAge(FileName) <> -1;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#4

Re: Wie arbeitet FileExists intern?

  Alt 25. Sep 2007, 13:11
Hui, wie sich das doch ändern kann
Meine Version bezieht sich auf D2006.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Wie arbeitet FileExists intern?

  Alt 25. Sep 2007, 13:29
Wie die Funktion intern abläuft, ist ja eigenzlich egal.
Hauptsache, das Ergebnis ist gleich.

Bei Delphi 2007 sieht's so aus:
Delphi-Quellcode:
function FileExists(const FileName: string): Boolean;
var
  Code: Integer;
begin
  Code := GetFileAttributes(PChar(FileName));
  Result := (Code <> -1) and (FILE_ATTRIBUTE_DIRECTORY and Code = 0);
end;
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#6

Re: Wie arbeitet FileExists intern?

  Alt 25. Sep 2007, 13:33
Zitat von RavenIV:
Wie die Funktion intern abläuft, ist ja eigenzlich egal.
Aber das war es ja, was er wissen wollte; wie es intern abläuft
Und da macht es dann ja schon Sinn, Unterschiede zwischen den einzelnen Versionen aufzuzeigen.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Wie arbeitet FileExists intern?

  Alt 25. Sep 2007, 13:37
Übrigens ist es bei Delphi7 noch genauso wie bei Delphi 5.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#8

Re: Wie arbeitet FileExists intern?

  Alt 25. Sep 2007, 14:02
hat das problem mit entpackten dateien zu tun?
ich habe folgendes problem festgestellt:
archive mit 7-zip erstellt im zip format
archiv mit rar entpackt

die entpackten verzeichnisse und dateien konnten nicht mit fileexists gefunden werden.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#9

Re: Wie arbeitet FileExists intern?

  Alt 25. Sep 2007, 14:08
Hi

Ich habe das Problem, das FileExists immer das selbe Ergebnis liefert, egal ob die Datei nun vorhanden ist oder nicht.

Gruß Richard
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Wie arbeitet FileExists intern?

  Alt 25. Sep 2007, 14:17
Zitat von richard_boderich:
Ich habe das Problem, das FileExists immer das selbe Ergebnis liefert, egal ob die Datei nun vorhanden ist oder nicht.
Kann es sein, dass der Pfad zur Datei nicht stimmt?
Und dass deshalb immer False geliefert wird?

Zeig doch mal ein Stückchen Code...
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 15:09 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