Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Darf ich TPath.GetFileName(..) für Web-URLs (http) benutzen? (https://www.delphipraxis.net/193279-darf-ich-tpath-getfilename-fuer-web-urls-http-benutzen.html)

Der schöne Günther 11. Jul 2017 18:38

Delphi-Version: 5

Darf ich TPath.GetFileName(..) für Web-URLs (http) benutzen?
 
Ich bekomme für Pfade wie
Delphi-Quellcode:
fileName := TPath.GetFileName('https://127.0.0.1:80/someFolder/someFile.htm');
immer das was ich mit gesundem Menschenverstand erwarte (z.B.
Delphi-Quellcode:
someFile.htm
).

Kann ich mich darauf verlassen? Ich finde in der Doku nichts dazu.

Jaja, Unit-Tests machen, dann muss man sich nicht fürchten

Glados 11. Jul 2017 18:44

AW: Darf ich TPath.GetFileName(..) für Web-URLs (http) benutzen?
 
Laut Source führt TPath.GetFileName am Ende nur ein Copy ab dem letzten Separator aus:
Delphi-Quellcode:
Result := Copy(FileName, SeparatorIdx + 1, Length(FileName) - SeparatorIdx)

Sollte eigentlich sicher sein.

Der schöne Günther 11. Jul 2017 18:51

AW: Darf ich TPath.GetFileName(..) für Web-URLs (http) benutzen?
 
Alles klar, danke.

Dann kommt für z.B.
Delphi-Quellcode:
fileName := TPath.GetFileName('https://host/someServlet?someParam=42');
als Ergebnis
Delphi-Quellcode:
fileName = 'someServlet?someParam=42'
raus. Nicht unbedingt das was man auf einem Windows-System als Dateinamen haben kann, aber gut :wink:

himitsu 11. Jul 2017 19:41

AW: Darf ich TPath.GetFileName(..) für Web-URLs (http) benutzen?
 
Ich bin mir fast sicher, dass sich irgendwo in den INDY-Units eine Funktion/Klasse versteckt, welche URLs zerlegen kann.
Ähnlich http://php.net/manual/de/function.parse-url.php


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