Verzeichnisnamen vergleichen
Verfasst: 21.05.2009 14:05
Servus,
hab hier grad ein Stück Code gebastelt, mit dem sich prüfen läßt, ob es sich bei zwei Verzeichnisnamen um die gleichen handelt:
Sie funktioniert auch mit relativen und komisch geschriebenen Pfadangaben, z.B. "C:\Programme\..\Windows//system32/../" und "C:/WINDOWS", welche beide die gleichen Pfade darstellen.
Allerdings finde ich das generell etwas umständlich, allein schon deshalb, weil meine Lösung nur dann funktioniert, wenn die Verzeichnisse existieren. Zudem ist es blöd, daß das CurrentDirectory geändert wird, das müßte im Multithreading-Betrieb noch verbessert werden.
Es wäre daher viel cooler, wenn es in PB eine FormatFileName()-Funktion oder so etwas gäbe, die sozusagen den Schritt, der hier durch Set- und GetCurrentDirectory() gelöst ist, auf ganz normaler Stringwurschtelebene arbeitet. Vielleicht hat ja jemand Bock drauf, sowas zu programmieren, dürfte nicht allzu viel Aufwand sein (hab aber grad selbst keine Lust
bzw. auch keine Zeit).
hab hier grad ein Stück Code gebastelt, mit dem sich prüfen läßt, ob es sich bei zwei Verzeichnisnamen um die gleichen handelt:
Code: Alles auswählen
Procedure sameDirectory(a$, b$)
cur$ = GetCurrentDirectory()
SetCurrentDirectory(LCase(a$))
a$ = GetCurrentDirectory()
SetCurrentDirectory(cur$)
SetCurrentDirectory(LCase(b$))
b$ = GetCurrentDirectory()
SetCurrentDirectory(cur$)
If a$ = b$
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
EndProcedure
Allerdings finde ich das generell etwas umständlich, allein schon deshalb, weil meine Lösung nur dann funktioniert, wenn die Verzeichnisse existieren. Zudem ist es blöd, daß das CurrentDirectory geändert wird, das müßte im Multithreading-Betrieb noch verbessert werden.
Es wäre daher viel cooler, wenn es in PB eine FormatFileName()-Funktion oder so etwas gäbe, die sozusagen den Schritt, der hier durch Set- und GetCurrentDirectory() gelöst ist, auf ganz normaler Stringwurschtelebene arbeitet. Vielleicht hat ja jemand Bock drauf, sowas zu programmieren, dürfte nicht allzu viel Aufwand sein (hab aber grad selbst keine Lust
