Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi 10.4.4 - ungültige Zeichen im Pfadnamen (https://www.delphipraxis.net/208698-delphi-10-4-4-ungueltige-zeichen-im-pfadnamen.html)

creehawk 8. Sep 2021 15:09

Delphi 10.4.4 - ungültige Zeichen im Pfadnamen
 
Moin.

Nach einer Neuinstallation von Windows 10 verursachten meine Projekte beim Start der exe. Datei die Meldung: "Ungültige Zeichen im Pfadnamen". Die einzigen Pfadnamen in den Programmen tauchen hierbei auf in
Delphi-Quellcode:
// SysUtils
XMLPath := IncludeTrailingPathDelimiter(PRGPath + 'XML');
// IOUtils
TPath.GetDirectoryName(GamePath);
NACH Dem entfernen von IncludeTrailingPathDelimiter und Tpath.GetDirectoryName, kompilieren und starten der neuen EXE war das Problem behoben. Schön.
Gegenprüfung : Beide Befehle wieder eingefügt, kompiliert und dann starten der neuen EXE - kein Problem mehr.

Das Unschöne: ich werde jetzt alle meine Projekte daraufhin abklopfen müssen. Eigentlich.

Oder hat jemand eine Idee.

creehawk

Windows 10 Home, V 20H2, Build 19042.1165

himitsu 8. Sep 2021 16:59

AW: Delphi 10.4.4 - ungültige Zeichen im Pfadnamen
 
Und was steht denn nun in PRGPath und GamePath drin?

jaenicke 8. Sep 2021 17:38

AW: Delphi 10.4.4 - ungültige Zeichen im Pfadnamen
 
Zitat:

Zitat von creehawk (Beitrag 1494335)
NACH Dem entfernen von IncludeTrailingPathDelimiter und Tpath.GetDirectoryName, kompilieren und starten der neuen EXE war das Problem behoben. Schön.
Gegenprüfung : Beide Befehle wieder eingefügt, kompiliert und dann starten der neuen EXE - kein Problem mehr.

Das heißt du hast vermeintlich den gleichen Quelltext wie vorher?
Was sagt denn das Diff zum bisherigen Stand in deiner Versionsverwaltung?

Und wenn du einen solchen Fehler hast, kannst du z.B. mit dem Process Monitor (mit Filter auf Process Name is <Name deiner Exe>) herausfinden was den Fehler eigentlich verursacht.

himitsu 9. Sep 2021 09:49

AW: Delphi 10.4.4 - ungültige Zeichen im Pfadnamen
 
Die Klassen in den IOUtils prüfen selbst vorher die Pfade auf "Gültigkeit".
TFile.InternalCheckFilePathParam

Sowas kommt dann erst garnicht im Dateisystem an und somit auch nicht im Monitor. (außer diese Prüfungen waren erfolgreich und FileAPI bzw. Dateisystemtreiber meckern dann ebenfalls)

creehawk 9. Sep 2021 10:29

AW: Delphi 10.4.4 - ungültige Zeichen im Pfadnamen
 
Zitat:

Zitat von himitsu (Beitrag 1494343)
Und was steht denn nun in PRGPath und GamePath drin?


Das soll drinstehen und stand bisher auch drin nd steht auch jetzt wieder drin:

PRGPath:
Delphi-Quellcode:
C:\Morten\Eigene Projekte\ATM32\XML\
GamePath:
Delphi-Quellcode:
C:\Games\Anno1800\

Vor drei Minuten bekam ich die Mitteilung : in dem Windows Build V 20H2, Build 19042.1165 ist eine Macke. Mit Delphi hat das nichts zu tun, sondern mit der Regionsverwaltung. Die genaue Beschreibung bekomme ich noch. Und auf ein klitzekleines Hotfix warte ich jetzt.

Das kostet alles zuviel Nerven.

creehawk

himitsu 9. Sep 2021 10:38

AW: Delphi 10.4.4 - ungültige Zeichen im Pfadnamen
 
OK.

Noch was zum +.

Zitat:

Delphi-Quellcode:
PRGPath + 'XML'

Delphi-Quellcode:
TPath.Comine(PRGPath, 'XML')


Ebntspricht in etwa einem
Delphi-Quellcode:
IncludeTrailingPathDelimiter(PRGPath) + 'XML'
,
bzw. genauer
Delphi-Quellcode:
IfThen(PRGPath = '', '', IncludeTrailingPathDelimiter(PRGPath)) + 'XML'

also
Zitat:

Delphi-Quellcode:
XMLPath := IncludeTrailingPathDelimiter(PRGPath + 'XML');

Delphi-Quellcode:
XMLPath := IncludeTrailingPathDelimiter(IfThen(PRGPath = '', '', IncludeTrailingPathDelimiter(PRGPath)) + 'XML');

oder eben
Delphi-Quellcode:
XMLPath := IncludeTrailingPathDelimiter(TPath.Comine(PRGPath, 'XML'));


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 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