![]() |
prüfen ob String ein Ordner-Pfad ist
Hallo,
wie kann ich prüfen ob der Inhalt eines Strings ein Ordner ist? Ich hab mir das so in etwa gedacht:
Delphi-Quellcode:
Also ich möchte nicht prüfen ob der Ordner vorhanden ist, sondern nur ob der String ein Ordner ist oder eine Datei (also eigentlich nur ob er ein Ordner ist).
var
S: String; b_Ist_Ordner, b_Ordner_vorhanden: Boolean; begin S := 'C:\Temp; //Hier bräucht ich eine Funktion: b_Ist_Ordner := STRING_IST_ORDNER(S); If b_Ist_Ordner then b_Ordner_vorhanden := DirectoryExists(S); Gibts für so was eine fertige Function von Delphi oder muss man sich so was selber zusammenbauen? |
Re: prüfen ob String ein Ordner-Pfad ist
Bastel dir einfach selber was:
Delphi-Quellcode:
function isdirname(s:string):boolean;
var i:integer; begin result:=false; if length(s)<2 then exit; if not ((pos(s[1],'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')>0) and (s[2]=':')) then exit; result:=true; if length(s)=2 then exit; result:=result and (s[3]='\'); for i:=4 to length(s) do result:=result and (pos(s[i],'alle gültigen Zeichen eben'+'\')>0); end; |
Re: prüfen ob String ein Ordner-Pfad ist
Zitat:
Delphi-Quellcode:
if (not (s[1] in ['a'..'z','A'..'Z'])) and (s[2]=':')) then exit;
|
Re: prüfen ob String ein Ordner-Pfad ist
ein ordner muss nicht unbedingt einen ":" im Namen haben. Er kann auch in einem Netzwerkpfad vorhanden sein. Zusätzlich müsste noch geprüft werden das keine weiteren Sonderzeichen im Pfad sind.
|
Re: prüfen ob String ein Ordner-Pfad ist
also es kommt natürlich auf deinen fall an, aber wenn die eingaben (der string)
nur dateien oder ordner bezeichnen können (keinen willkürlichen text in dem evtl ein \ vorkommt) dann kannst du das eigentlich so unterschieden.
Delphi-Quellcode:
if ExtractFilePath(myString) = '' then
//ist ein Ordner else //ist eine Datei |
Re: prüfen ob String ein Ordner-Pfad ist
Zitat:
Code:
Wie willst du feststellen, ob es eine Datei oder ein Ordner ist, ohne im Dateisystem nachzusehen? Dateinamen müssen keine Extension enthalten, Ordner dürfen eine enthalten. Also gibt es in unserem Beispiel zwei Möglichkeiten:
C:\Daten\WasBinIch
1.) es ist die Datei "WasBinIch" im Ordner "C:\Daten" 2.) es ist der Ordner "C:\Daten\WasBinIch" Gruß Hawkeye |
Re: prüfen ob String ein Ordner-Pfad ist
Hallo,
wie wäre es mit
Delphi-Quellcode:
?
if DirectoryExists(S)
// S ist ein Verzeichnis else if FileExists(S) // S ist eine Datei else // S ist irgendwas anderes Mit freundlichen Grüßen, Ben |
Re: prüfen ob String ein Ordner-Pfad ist
nach seinem ausgangspost will er ja erst auf existieren des Ordners prüfen wenn er weiß das es ein Ordner sein könnte/ist
|
Re: prüfen ob String ein Ordner-Pfad ist
Zitat:
ABER: Dabei sollte beachtet werden, dass man per Definition nicht eindeutig sagen kann, ob in einem String ein Verzeichnis oder eine Datei angegeben ist. 'C:\WINDOWS\HelloWorld' Das koennte z.B. eine Datei oder ein Verzeichnis sein. Gruesse, Lizzy |
Re: prüfen ob String ein Ordner-Pfad ist
dann definiert man halt für sein eigenes programm, dass dateien ohne ext.
als ordner angesehen werden. es kommt halt immer auf den kontext an. wie willst du es anders machen ohne ins dateisys zu schaun. besser als mit ExtractFilePath / ExtractFilename gehts nich (meiner meinung nach). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz