Duden/Pfade Funktionen
Trenn_Zeichen
Gibt den Pfad-Trennzeichen, der dem Betriebssystem entspricht zurück.
Auf Linux: '/'
Auf Windows: '\'
- Rückgabe Typ:
Buchstabe
Aliase
Pfad-Trennzeichen
den Pfad-Trennzeichen
das Pfad-Trennzeichen
Implementation
Wenn das Betriebssystem gleich "Windows" ist, gib '' zurück. Gib '/' zurück.
UNIX_Ist_Absolut
Gibt zurück ob der gegebene UNIX Pfad ein absoluter oder relativer Pfad ist.
Der Rückgabewert ist wahr wenn der erste Buchstabe des gegebenen Textes ein '/' ist.
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Wahrheitswert
Aliase
<t> kein absoluter UNIX Pfad ist
<t> ein absoluter UNIX Pfad ist
Implementation
Wenn t leer ist, gib falsch zurück. Gib wahr, wenn (t an der Stelle 1) gleich '/' ist zurück.
UNIX_Säubern
Säubert/Normalisiert einen UNIX Pfad:
- Ersetzt mehrere aufeinderfolgende '/' durch einen ("///" -> "/")
- Entfernt '.' pfade ("a/." -> "a")
- Entfernt innere '..' pfade und das (nicht-..) element das davor steht ("a/b/.." -> "a")
- Entfernt .. elemente die nach root stehen ("/.." -> "/")
Der gesäuberter Pfad endet mit einem '/' nur wenn es root ist.
Ein leerer Pfad gibt "." zurück.
Entspricht Go's path.clean funktion
https://pkg.go.dev/path#Clean
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Text
Aliase
der UNIX Pfad <t> gesäubert
Implementation
Wenn t gleich "" ist, gib "." zurück. Der Wahrheitswert rooted ist wahr, wenn t an der Stelle 1 gleich '/' ist. Die Zahl n ist die Länge von t. Der Text path ist "". [ output text ] Die Zahl r ist 1. [ next index to process ] Die Zahl dotdot ist 1. [ index where .. must stop ] Wenn rooted gleich wahr ist, dann: Füge '/' an path an. Speichere 2 in r. Speichere 2 in dotdot. Solange r kleiner als, oder n ist, mache: [Schreibe r auf eine Zeile.] Wenn t an der Stelle r gleich '/' ist, dann: [ empty path element ] Erhöhe r um 1. [skip /] Wenn aber t an der Stelle r gleich '.' ist und (r gleich n ist oder t an der Stelle (r plus 1) gleich '/' ist), dann: [ . element ] Erhöhe r um 1. [skip .] Wenn aber t an der Stelle r gleich '.' ist und t an der Stelle (r plus 1) gleich '.' ist und (r plus 1 gleich n ist oder t an der Stelle (r plus 2) gleich '/' ist), dann: [ .. element: remove last / ] Erhöhe r um 2. Wenn die Länge von path größer als, oder dotdot ist, dann: Mache: Wenn die Länge von path gleich 1 ist, dann: Speichere "" in path. Sonst Speichere path bis zum (die Länge von path minus 1). Element in path. Solange die Länge von path größer als dotdot ist und path an der Stelle (die Länge von path minus 1) ungleich '/' ist. Wenn aber rooted gleich falsch ist, dann: [ cannot backtrack, but not rooted, so append .. element ] Wenn die Länge von path größer als 0 ist, dann: Füge '/' an path an. Füge ".." an path an. Speichere die Länge von path in dotdot. Sonst: [ add slash if needed ] Wenn rooted und die Länge von path ungleich 1 ist oder nicht rooted und die Länge von path ungleich 0 ist, dann: Füge '/' an path an. Solange r kleiner als, oder n ist und t an der Stelle r ungleich '/' ist, mache: Füge (t an der Stelle r) an path an. Erhöhe r um 1. Wenn path leer ist, speichere "." in path. Gib path zurück.
UNIX_Verbinden
Verbindet zwei UNIX Pfade mit einem '/' und säubert zuletzt.
- Parameter:
a
,b
- Parameter Typ:
Text
,Text
- Rückgabe Typ:
Text
Aliase
die UNIX Pfade <a> und <b> verbunden
Implementation
Wenn a leer ist, gib b zurück. Wenn b leer ist, gib a zurück. Gib der UNIX Pfad (a verkettet mit '/' verkettet mit b) gesäubert zurück.
UNIX_Vollständiger_Pfad
Nimmt einen Relativen UNIX Pfad t und gibt den vollständigen absoluten Pfad zurück.
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Text
Aliase
den absoluten UNIX Pfad zu <t>
der absoluten UNIX Pfad zu <t>
Implementation
Der Text cwd ist das Arbeitsverzeichnis. Gib die UNIX Pfade cwd und t verbunden zurück.
UNIX_Ordnerpfad
Gibt den UNIX Pfad ohne das letze Element zurück.
Falls der Pfad leer ist, wird ein "." zurück gegeben.
Falls der Pfad nur aus "/" gefolg von nicht-"/" Zeichen, wird "/" zurückgegeben.
f("/a/b/c") = "/a/b"
f("a/b/c") = "a/b"
f("/a/") = "/a"
f("a/") = "a"
f("a") = "."
f("/") = "/"
f("..") = "."
f(".") = "."
f("") = "."
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Text
Aliase
den UNIX Ordnerpfad von <t>
der UNIX Ordnerpfad von <t>
Implementation
Die Zahl i ist die Länge von t. Solange i größer als 0 ist, mache: Wenn t an der Stelle i gleich '/' ist, dann: Der Text dir ist t bis zum i. Element. Entferne alle '/' nach dir. Wenn die Länge von dir gleich 0 ist, gib "/" zurück. Gib dir zurück. Verringere i um 1. Gib "." zurück.
UNIX_Basisname
Gibt den letzten Element eines UNIX Pfades zurück. Falls der Pfad leer ist, wird "." ausgegeben.
f("/a/b/c/d.png") = "d.png"
f("/a/b/c/d") = "d"
f("/a/b/c/") = "c"
f("/a/b/c///") = "c"
f("./b") = "b"
f("hi.txt") = "hi.txt"
f(".") = "."
f("..") = ".."
f("") = "."
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Text
Aliase
den UNIX Basisnamen von <t>
der UNIX Basisname von <t>
Implementation
Der Text t2 ist (t mit allen '/' danach entfernt). Die Zahl i ist die Länge von t2. Wenn t2 gleich "" ist, gib "." zurück. Solange i größer als 0 ist, mache: Wenn t2 an der Stelle i gleich '/' ist, verlasse die Schleife. Verringere i um 1. Gib t2 ab dem (i plus 1). Element zurück.
UNIX_Dateiname
Gibt den Dateinamen einer Datei zurück. Wenn der UNIX Pfad nicht im Format von '*/*.*' ist wird ein leerer Text zurück gegeben.
f("/a/b/c/test.txt") = "test"
f("/a/b/c/test.txt.exe") = "test"
f("test.exe") = "test"
f("/a/b/c/") = ""
f("/a/b/c") = ""
f("/") = ""
f(".") = ""
f("..") = ""
f("noext") = ""
f("") = ""
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Text
Aliase
den UNIX Dateinamen von <t>
der UNIX Dateiname von <t>
Implementation
Die Zahl i ist die Länge von t. Die Zahl ende ist -1. Solange i größer als 0 ist, mache: Wenn t an der Stelle i gleich '.' ist, speichere i minus 1 in ende. Wenn t an der Stelle i gleich '/' ist, verlasse die Schleife. Verringere i um 1. Wenn ende kleiner als 1 ist, gib "" zurück. Gib t im Bereich von i plus 1 bis ende zurück.
UNIX_Erweiterung
Gibt die Erweiterung einer Datei zurück. Wenn der UNIX Pfad t ein Ordner ist oder leer ist, wird einen leeren Text zurück gegeben.
f("/a/b/c/bar.css") = "css"
f("/a/b/c/foo.tar.gz") = "tar.gz"
f("bar.css") = "css"
f("/a/b.trap/c/noext") = ""
f("/") = ""
f(".") = ""
f("..") = ""
f("noext") = ""
f("") = ""
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Text
Aliase
die UNIX Erweiterung der Datei bei <t>
Implementation
Die Zahl i ist die Länge von t. Die Zahl extStart ist i. Solange i größer als 0 ist, mache: Wenn t an der Stelle i gleich '/' ist, verlasse die Schleife. Wenn t an der Stelle i gleich '.' ist, speichere i plus 1 in extStart. Verringere i um 1. Wenn extStart größer als, oder die Länge von t ist, gib "" zurück. Gib t ab dem extStart. Element zurück.
Windows_Ist_Absolut
Gibt wahr zurück wenn der gegebene Windows Pfad mit einem "\" anfängt oder der zweite Buchstabe ein Doppelpunkt ist ("C:").
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Wahrheitswert
Aliase
<t> kein absoluter Windows Pfad ist
<t> ein absoluter Windows Pfad ist
Implementation
Wenn t gleich "" ist, gib falsch zurück. Wenn t an der Stelle 1 gleich '' ist, gib wahr zurück. [ "Usersadmin" ] Gib wahr, wenn die Länge von t größer als, oder 2 ist und (t an der Stelle 1) ein lateinischer Buchstabe ist und t an der Stelle 2 gleich ':' ist zurück. [ "C:Usersadmin" ]
Windows_Saeubern
Säubert/Normalisiert einen gegebenen Windows Pfad. Entfernt keine doppelten Schrägstrichen (\\)!
f("C:\\Users\\admin") = "C:\Users\admin"
f("C:\\Users\\admin\\") = "C:\Users\admin\"
f("C:\\Users\\admin\\..") = "C:\Users"
f("C:\\Users\\admin\\..\\") = "C:\Users\"
f("C:\\Users\\admin\\.") = "C:\Users\admin"
f("C:\\Users\\admin\\.\\") = "C:\Users\admin\"
f("C:\\Users\\..\\admin\\.") = "C:\admin"
f("C:\\Users\\\\admin") = "C:\Users\\admin"
f("C:\\..") = "C:\"
f("C:") = "C:\"
f("..") = "\"
f(".") = "\"
f("") = "\"
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Text
Aliase
der Windows Pfad <t> gesäubert
Implementation
Implementiert in libddpstdlib.a
Windows_Pfad_Verbinden
Verbindet zwei Windows Pfade und säubert zuletzt.
- Parameter:
a
,b
- Parameter Typ:
Text
,Text
- Rückgabe Typ:
Text
Aliase
die Windows Pfade <a> und <b> verbunden
Implementation
Implementiert in libddpstdlib.a
Windows_Laufwerkbuchstabe
Gibt den Laufwerkbuchstaben des gegebenen Windows Pfads zurück. Wenn keiner existiert wird ' ' zurück gegeben.
Falls der Laufwerkbuchstaben kein Buchstabe zwischen a-Z ist wird auch ' ' zurückgegeben.
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Buchstabe
Aliase
der Laufwerkbuchstabe von <t>
den Laufwerkbuchstaben von <t>
Implementation
Wenn die Länge von t kleiner als 2 ist, gib ' ' zurück. Wenn t an der Stelle 2 ungleich ':' ist, gib ' ' zurück. Wenn nicht (t an der Stelle 1) ein lateinischer Buchstabe ist, gib ' ' zurück. Gib t an der Stelle 1 zurück.
Windows_Vollständiger_Pfad
Nimmt einen Relativen Windows Pfad t und gibt den vollständigen absoluten Pfad zurück.
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Text
Aliase
den absoluten Windows Pfad zu <t>
der absoluten Windows Pfad zu <t>
Implementation
Der Text cwd ist das Arbeitsverzeichnis. Gib die Windows Pfade cwd und t verbunden zurück.
Windows_Ordnerpfad
Gibt den Windows Pfad ohne das letze Element zurück.
Falls der Pfad leer ist, wird ein "." zurück gegeben.
Falls der Pfad nur aus "C:\" gefolgt von nicht-"/" oder nicht-"\" Zeichen, wird "C:\" zurückgegeben.
Falls der Pfad nur aus "\" oder "/" gefolgt von nicht-"/" oder nicht-"\" Zeichen, wird "\" zurückgegeben.
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Text
Aliase
den Windows Ordnerpfad von <t>
der Windows Ordnerpfad von <t>
Implementation
Die Zahl i ist die Länge von t. Solange i größer als 0 ist, mache: Wenn t an der Stelle i gleich '' ist oder t an der Stelle i gleich '/' ist, dann: Der Text dir ist t bis zum i. Element. Entferne alle '' nach dir. Wenn die Länge von dir gleich 0 ist, gib "" zurück. [ "abc" -> "" ] Wenn ':' am Ende von dir steht, gib dir verkettet mit '' zurück. [ "C:abc" -> "C:" ] Gib dir zurück. Verringere i um 1. Gib "." zurück.
Windows_Basisname
Gibt das letzte Element des gegebenen Windows Pfads zurück. Falls der Pfad leer ist, wird "." ausgegeben.
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Text
Aliase
den Windows Basisnamen von <t>
der Windows Basisname von <t>
Implementation
Die Zahl ende ist die Länge von t. Wenn ende gleich 0 ist, gib "." zurück. Solange t an der Stelle ende gleich '' ist oder t an der Stelle ende gleich '/' ist, verringere ende um 1. Die Zahl i ist ende. Solange i größer als 0 ist, mache: Der Buchstabe curr ist t an der Stelle i. Wenn (curr gleich '' ist oder curr gleich '/' ist oder curr gleich ':' ist), verlasse die Schleife. Verringere i um 1. Gib t im Bereich von (i plus 1) bis ende zurück.
Windows_Dateiname
Gibt den Dateinamen einer Datei zurück. Wenn der Windows Pfad nicht im Format von '*\*.*', '*\*.*' oder '*:*.*' ist wird ein leerer Text zurück gegeben.
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Text
Aliase
den Windows Dateinamen von <t>
der Windows Dateiname von <t>
Implementation
Die Zahl i ist die Länge von t. Die Zahl ende ist -1. Solange i größer als 0 ist, mache: Der Buchstabe curr ist t an der Stelle i. Wenn curr gleich '.' ist, speichere i minus 1 in ende. Wenn curr gleich '' ist oder curr gleich '/' ist oder curr gleich ':' ist, verlasse die Schleife. Verringere i um 1. Wenn ende kleiner als 1 ist, gib "" zurück. Gib t im Bereich von i plus 1 bis ende zurück.
Windows_Erweiterung
Gibt die Erweiterung einer Datei zurück. Wenn der Windows Pfad t ein Ordner ist oder leer ist, wird einen leeren Text zurück gegeben.
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Text
Aliase
die Windows Erweiterung der Datei bei <t>
Implementation
Die Zahl i ist die Länge von t. Die Zahl extStart ist i. Solange i größer als 0 ist, mache: Der Buchstabe curr ist t an der Stelle i. Wenn curr gleich '.' ist, speichere i plus 1 in extStart. Wenn curr gleich '' ist oder curr gleich '/' ist oder curr gleich ':' ist, verlasse die Schleife. Verringere i um 1. Wenn extStart größer als, oder die Länge von t ist, gib "" zurück. Gib t ab dem extStart. Element zurück.
Pfad_Ist_Absolut
Gibt zurück ob der gegebene UNIX Pfad ein absoluter oder relativer Pfad ist.
Jenachdem in welchem Betriebsystem die Funktion aufgerufen wird, läuft die Windows_x oder UNIX_x funktion.
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Wahrheitswert
Aliase
<t> kein absoluter Pfad ist
<t> ein absoluter Pfad ist
Implementation
Wenn das Betriebssystem gleich "Windows" ist, gib t ein absoluter Windows Pfad ist zurück. Gib t ein absoluter UNIX Pfad ist zurück.
Pfad_Säubern
Säubert/Normalisiert den gegebenen Pfad:
Jenachdem in welchem Betriebsystem die Funktion aufgerufen wird, läuft die Windows_x oder UNIX_x funktion.
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Text
Aliase
der Pfad <t> gesäubert
Implementation
Wenn das Betriebssystem gleich "Windows" ist, gib der Windows Pfad t gesäubert zurück. Gib der UNIX Pfad t gesäubert zurück.
Pfad_Verbinden
Verbindet zwei Pfade mit dem Trennzeichen und säubert zuletzt.
Jenachdem in welchem Betriebsystem die Funktion aufgerufen wird, läuft die Windows_x oder UNIX_x funktion.
- Parameter:
a
,b
- Parameter Typ:
Text
,Text
- Rückgabe Typ:
Text
Aliase
die Pfade <a> und <b> verbunden
Implementation
Wenn das Betriebssystem gleich "Windows" ist, gib die Windows Pfade a und b verbunden zurück. Gib die UNIX Pfade a und b verbunden zurück.
Vollständiger_Pfad
Nimmt einen Relativen Pfad t und gibt den vollständigen absoluten Pfad zurück.
Jenachdem in welchem Betriebsystem die Funktion aufgerufen wird, läuft die Windows_x oder UNIX_x funktion.
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Text
Aliase
den absoluten Pfad zu <t>
der absoluten Pfad zu <t>
Implementation
Wenn das Betriebssystem gleich "Windows" ist, gib den absoluten Windows Pfad zu t zurück. Gib den absoluten UNIX Pfad zu t zurück.
Ordnerpfad
Gibt den Pfad ohne das letze Element zurück.
Jenachdem in welchem Betriebsystem die Funktion aufgerufen wird, läuft die Windows_x oder UNIX_x funktion.
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Text
Aliase
den Ordnerpfad von <t>
der Ordnerpfad von <t>
Implementation
Wenn das Betriebssystem gleich "Windows" ist, gib den Windows Ordnerpfad von t zurück. Gib den UNIX Ordnerpfad von t zurück.
Basisname
Gibt den letzten Element eines UNIX Pfades zurück. Falls der Pfad leer ist, wird "." ausgegeben.
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Text
Aliase
den Basisnamen von <t>
der Basisname von <t>
Implementation
Wenn das Betriebssystem gleich "Windows" ist, gib den Windows Basisnamen von t zurück. Gib den UNIX Basisnamen von t zurück.
Dateiname
Gibt den Dateinamen einer Datei zurück.
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Text
Aliase
den Dateinamen von <t>
der Dateiname von <t>
Implementation
Wenn das Betriebssystem gleich "Windows" ist, gib den Windows Dateinamen von t zurück. Gib den UNIX Dateinamen von t zurück.
Erweiterung
Gibt die Erweiterung einer Datei zurück. Wenn der Pfad t ein Ordner ist oder leer ist, wird einen leeren Text zurück gegeben.
- Parameter:
t
- Parameter Typ:
Text
- Rückgabe Typ:
Text
Aliase
die Erweiterung der Datei bei <t>
Implementation
Wenn das Betriebssystem gleich "Windows" ist, gib die Windows Erweiterung der Datei bei t zurück. Gib die UNIX Erweiterung der Datei bei t zurück.