Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi String auf Pathgültigkeit testen ? (https://www.delphipraxis.net/87533-string-auf-pathgueltigkeit-testen.html)

turboPASCAL 1. Mär 2007 21:39


String auf Pathgültigkeit testen ?
 
Hi,

gibt es eine Function in Delphi die einen String auf Pathgültigkeit prüft und ggf. gersetzt ?



:gruebel:

Gruss ein etwas zerstreuter...

Luckie 1. Mär 2007 21:42

Re: String auf Pathgültigkeit testen ?
 
Das Wort "Pathgültigkeit" kenne ich nicht. Was meinst du damit? Ob der Pfad exitiert? Dann nimm DiectoryExists. Ob der Pfad ungültige Zeichenthält, dann nimm eine Routine aus der Code-Lib. Dort haben wir eine Routine, die überprüft, ob ein Dateiname nur gültige Zeichen enthält, sollte auch auf Pfade anwendbar sein.

turboPASCAL 1. Mär 2007 21:50

Re: String auf Pathgültigkeit testen ?
 
Äh ob ein String ein gültiger Pathname ist.

Delphi-Quellcode:
MyPath = '\Das ist ein ? ungültiger * Path\,Dings.dat';
CreateDir(MyPath);

*argh* Gefunden, thx. :wall:

Christian Seehase 1. Mär 2007 22:29

Re: String auf Pathgültigkeit testen ?
 
Moin Matti,

vielleicht solltest Du Dir mal die Funktionen MSDN-Library durchsuchenPathIsDirectory oder MSDN-Library durchsuchenPathIsRelative ansehen.
Das sind Funktionen der Shell Lightweight API (shlwapi.dll), die selbst importiert werden müssen.

Auch wenn Deine Methode funktioniert:
Ist es sinnvoll zu versuchen ein Verzeichnis anzulegen, nur um zu erkennen, ob es eines ist?

Du könntest auch einfach prüfen, ob der String ungültige Zeichen enthält (:,",<,>,|,*,?). : nur, wenn keine Laufwerksangabe enthalten sein kann. Das / fehlt übrigens bewusst, da es ein gültiges Pfadtrennzeichen darstellt. Es ist identisch zu \ verwendbar.
Ein Problem wäre natürlich, wenn der String mit \\ anfängt. Dann könnte es eine Serverangabe sein, oder einfach ein relativer Pfad mit zwei aufeinander folgenden Pfadtrennern Eine beliebige Anzahl hintereinander, auch unterschiedlicher Pfadtrennzeichen ist erlaubt, und wird vom Dateisystem als eines erkannt.
(C:\\\\\\Temp = C:\Temp = C:/temp = C:/\/\/\temp)

oschulz 2. Mär 2007 09:02

Re: String auf Pathgültigkeit testen ?
 
Delphi bietet die Funktion DirectoryExists zum prüfen, ob der Pfad existiert. Wenn das Verzeichnis nicht existiert, kannst du es mit ForceDirectories() anlegen.

turboPASCAL 2. Mär 2007 09:45

Re: String auf Pathgültigkeit testen ?
 
@oschulz, ja danke, ist schon klar. Es geht darum zu Prüfen ob ein String ein gültiger Path
ist bzw. ob er unerlaubte Zeichen enthält, ohne dies mit einem realen Versuch auf die HD zu schreiben zu testen.

:mrgreen: Ich mag es nun mal nicht wenn man umsonst auf der Platte rumkratzt. ;)

@Christian, Ah, kannte ich noch nicht.


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