Seite 1 von 1
eine Verzeichnisebene höher
Verfasst: 10.10.2022 16:30
von stab
Hallo,
um eine Verzeichnisebende höher zu gelangen, habe ich mir das hier gebastelt:
Code: Alles auswählen
dir$ = "C:\Programme\Anwendung\bin\"
For d = 1 To CountString(dir$,"\")-1
neudir$ = neudir$ + StringField(dir$,d,"\") + "\"
Next
Debug neudir$
Gibt es da etwas anderes?
auf Windows Kommandozeilenebene reicht ja ein "cd.."
Re: eine Verzeichnisebene höher
Verfasst: 10.10.2022 16:37
von Axolotl
Moin,
natürlich, es gibt immer (viele) verschiedene Lösungen ...
Mir gefällt das hier am Besten:
Code: Alles auswählen
neudir$ = GetPathPart(RTrim(dir$, #PS$)) ; #PS$ == "\"
Debug neudir$
oder als Marco oder Procedure
Code: Alles auswählen
; Macro GetParentDirectory(Directory)
; GetPathPart(RTrim(Directory, #PS$))
; EndMacro
Procedure.s GetParentDirectory(Directory$)
ProcedureReturn GetPathPart(RTrim(Directory$, #PS$))
EndProcedure
Re: eine Verzeichnisebene höher
Verfasst: 10.10.2022 17:01
von stab
Das gefällt mir auch sehr gut !!!
Ich wusste nicht bzw. hatte nicht getestet, dass GetPathPart() so einfach den Pfad eines Verzeichnisses zurückgibt.
Code: Alles auswählen
t$ = "::<>st1\test2.safsa.__,,,---))))88888///sadf\Qqqq° °°^^^^Ä+*+;;,...$%§]\]sa.sadfsa.sdaffsasf."
Debug GetPathPart(t$)
Vielleicht sollte die Hilfe doch so lauten:
Kürzt einen String vom Ende bis auf das erste Vorkommen eines Backslashes!
Danke, danke!
Re: eine Verzeichnisebene höher
Verfasst: 10.10.2022 20:47
von STARGÅTE
Du kannst an den Pfad auch einfach ein ".." hängen und gelangst so eine Ebene nach oben.
"C:\Programme\Anwendung\bin\..\" ist also das gleiche wie "C:\Programme\Anwendung\" ohne, dass du irgendwas abschneiden musst.
Re: eine Verzeichnisebene höher
Verfasst: 11.10.2022 08:50
von stab
Das ist ja cool ...
Obwohl ich glaube, mich mit der Kommandozeile gut auszukennen (bin damit aufgewachsen), kannte ich diese Syntax noch nicht.
Code: Alles auswählen
Debug GetCurrentDirectory()
SetCurrentDirectory(GetCurrentDirectory()+"..")
Debug GetCurrentDirectory()
Danke !