Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   GetFileAttribute - BUG? (https://www.delphipraxis.net/192807-getfileattribute-bug.html)

Alter Mann 20. Mai 2017 20:10

GetFileAttribute - BUG?
 
Hallo,

wenn ich folgenden Pfad expandiere

Code:
..\..\..\..\..\..\..\..\Music\Enya\Paint the Sky with Stars- The Best of Enya\01 Orinoco Flow.mp3
und anschlißend mit FileExists das Ergebnis prüfe, kommt ein False:(

Also den Debugger angeworfen und in FileExists einen Breakpoint gesetzt.
Das Ergebnis: GetFileAttributes gibt ein INVALID_FILE_ATTRIBUTES zurück.

Ein nachfolgendes GetLastError ergibt ein ERROR_PATH_NOT_FOUND.

Kann jemand den Fehler bestättigen?
Welche Alternativen gibt es zu FileExists?

Achso, ich benutze Tokyo mit dem April-Update

Danke und ein schönes WE

SneakyBagels 20. Mai 2017 20:13

AW: GetFileAttribute - BUG?
 
Zitat:

wenn ich folgenden Pfad expandiere
Was heißt denn, wenn du ihn expandierst?
Welcher Wert wird denn effektiv mit FileExists geprüft? Stell ihn doch mal ggf. anonymisiert hier ein.

himitsu 20. Mai 2017 20:17

AW: GetFileAttribute - BUG?
 
Zitat:

Kann jemand den Fehler bestättigen?
Ja, wenn die Datei nicht existiert (hier einer der Verzeichnisse über der Datei), bzw. wenn der Pfad falsch ist, dann bekomme ich ebenfalls den selben Fehler. :roll:

Dalai 20. Mai 2017 21:33

AW: GetFileAttribute - BUG?
 
Da das ein relativer Pfad ist, ist hier das Arbeitsverzeichnis von entscheidender Bedeutung. Stimmt das nicht bzw. ist ein anderes als vermutet, wird eben die Datei nicht gefunden bzw. am falschen Ort nachgeschaut. Lösung: Absoluten Pfad sauber zusammenbauen, so dass das Arbeitsverzeichnis irrelevant wird.

Grüße
Dalai

Hobbycoder 20. Mai 2017 23:40

AW: GetFileAttribute - BUG?
 
Wennns denn ein relativer Pfad sein soll vielleicht mit SetCurrentDir das passende Ausgangsverzeichnis festlegen. Ich weiß aber grad aus dem Kopf nicht, ob das Abhilfe schaffen kann. Einfach mal ausprobieren. Fiel mir nur grad so ein.
Absoluter Pfad ist aber sicher besser.

Alter Mann 21. Mai 2017 07:10

AW: GetFileAttribute - BUG?
 
Moin, Moin,

danke für die schnelle Reaktion, aber der Fehler scheint wo anders zu liegen.

Genutzt wird beim speichern ExtractRelativePath und beim laden ExpandFilename.

Ich prüfe das mal genauer und komme dann neu.

Danke

himitsu 21. Mai 2017 10:41

AW: GetFileAttribute - BUG?
 
ExpandFilename nutzt ebenfalls das aktuelle Arbeitsverzeichnis deiner Anwendung
und Pfade relativ zum Arbeitsverzeichnis sind immer gefährlich, wenn man nicht aufpasst, denn beim Starten der Anwendung oder z.B. durch Anzeigen eines Öffnen-/Speicherndialogs muß dieses nicht dem Programmverzeichnis entsprechen.

Aber wie SneakyBagels beteits erwähnte, hast du das wichtigste Vergessen und nicht nachgeschaut, oder zumindestens nicht uns gesagt, wie die Verzeichnisse der Zieldatei und das ergebnis von ExpandFilename aussehen.

SneakyBagels 21. Mai 2017 12:03

AW: GetFileAttribute - BUG?
 
Zitat:

danke für die schnelle Reaktion, aber der Fehler scheint wo anders zu liegen.
Lass dir doch mal den Pfad der geladen und gespeichert werden soll auf dem Bildschirm ausgeben.
Dann weißt du ganz genau, ob er korrekt ist oder nicht. Habe ich oben aber schon einmal geschrieben...

jaenicke 21. Mai 2017 22:29

AW: GetFileAttribute - BUG?
 
Das ganze Raten macht doch gar keinen Sinn.

Nimm einfach den Process Monitor und gib als Filter ein: "Process Name" "is" deine.exe

Dann gibst du bei dem Fehler ein ShowMessage aus, lässt das offen und schaust was zuletzt im Log steht.
Dann siehst du direkt was Sache ist...

himitsu 21. Mai 2017 22:58

AW: GetFileAttribute - BUG?
 
Zitat:

Zitat von jaenicke (Beitrag 1372262)
Nimm einfach den Process Monitor...

Oder einfach im Debugger schauen was übergeben wird, bzw. das per ShowMessage direkt ausgeben.


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:11 Uhr.
Seite 1 von 2  1 2   

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf