Supportnet / Forum / Skripte(PHP,ASP,Perl...)
relativer Pfad wird zum absolutem Pfad
Frage
Hi Leute!
Wie bekomme ich aus einem relativen Pfad (z.B. ../Test/NeuerOrdner/Aufg2.dyn) mit VbScript oder auch JavaScript (glaube nicht, dass es damit klappt) einen absoluten Pfad (könnte z.B. so aussehen: G:\NeueDateien\Handbuch\Test\NeuerOrdner\Aufg2.dyn)?
Gruß,
Marc
Antwort 1 von Dr.Ma-Busen
Hi!
Ich hoffe mal das es das ist was du gesucht hast.
Mir ist auf die schnell jetzt nichts anderse eingefallen vielleicht gibt es da ja noch eine einfachere Lösung.
Diese kleine Function ermittelt dir den Absoluten Pfad.
Um den Pfad zu ermiteln musst du nur die Function aufrufen und den Pfad übergeben von den, du den Absoluten Pfad haben möchtest, die Function gibt dann den Pfad zurück.
var pfad = getUrl('../test/datei.xy')
In der Variabel pfad steht dann der absolute Pfad zu der Datei die du beim aufruf der Function übergeben hast.
z.B. Die Datei in den das Script sich befindet ist z.B. d:\Ordner\datein\file.xy
Nach den aufruf der Function mit "var pfad = getUrl('../test/datei.xy')" steht dann in der Variable pfad "d:/Ordner/test/datei.xy"
Beachte bitte das in den Pfad den du an die Function übergibst nur / und keine \ drin sind.
MfG
Ich hoffe mal das es das ist was du gesucht hast.
Mir ist auf die schnell jetzt nichts anderse eingefallen vielleicht gibt es da ja noch eine einfachere Lösung.
function getUrl(url_neu){
// AKTUELLEN PFAD ERMITTELN
var url = window.location.pathname;
// LISTEN DEFINIEREN
var alt_url = new Array();
var neu_url = new Array();
// ALLE \ DES AKTUELLEN PFAD IN / UMWANDELN
var x = 1;
while ( x != -1){
url = url.replace(/\\/,"/")
x = url.indexOf("\\")
}
// AKTUELLEN PFAD IN LISTE SCHREIBEN
alt_url = url.split("/");
// NAME DER AKTUELLEN DATEI AUS LISTE ENTFERNEN
alt_url.pop();
// NEUEN PFAD IN EINE LISTE SCHREIBEN
neu_url = url_neu.split("/");
// NEUEN PFAD BERECHNEN
var bis = neu_url.length;
for( var i = 0; i < bis; i++){
if( neu_url[0] == '..'){
neu_url.shift();
alt_url.pop();
}
}
// NEUEN PFAD ERSTELLEN UND ZURUECKGEBEN
return (alt_url.concat(neu_url)).join("/");
}
Diese kleine Function ermittelt dir den Absoluten Pfad.
Um den Pfad zu ermiteln musst du nur die Function aufrufen und den Pfad übergeben von den, du den Absoluten Pfad haben möchtest, die Function gibt dann den Pfad zurück.
var pfad = getUrl('../test/datei.xy')
In der Variabel pfad steht dann der absolute Pfad zu der Datei die du beim aufruf der Function übergeben hast.
z.B. Die Datei in den das Script sich befindet ist z.B. d:\Ordner\datein\file.xy
Nach den aufruf der Function mit "var pfad = getUrl('../test/datei.xy')" steht dann in der Variable pfad "d:/Ordner/test/datei.xy"
Beachte bitte das in den Pfad den du an die Function übergibst nur / und keine \ drin sind.
MfG
Antwort 2 von Marc R
Hi, erstmal Danke für deine schnelle Antwort!
Es gibt leider folgendes Problem:
1. Die Slashs (/) werden durch Kommas (,) ersetz!?
2. Es wird nur der relative Pfad zurückgegeben und aus den Slashs ein Komma gemacht.
Ich habe die Variablen mir mit alert ausgeben lassen.
Kennst du eine Lösung für VBScript?
Wäre besser, da ich in VBScript programmiere.
Gruß,
Marc
Es gibt leider folgendes Problem:
1. Die Slashs (/) werden durch Kommas (,) ersetz!?
2. Es wird nur der relative Pfad zurückgegeben und aus den Slashs ein Komma gemacht.
Ich habe die Variablen mir mit alert ausgeben lassen.
Kennst du eine Lösung für VBScript?
Wäre besser, da ich in VBScript programmiere.
Gruß,
Marc
Antwort 3 von Dr.Ma-Busen
Hi!
Wie die Slashs werden durch Kommas ersezt?
Komisch als ich es ausprobiert habe hat es mir den absoluten Pfad zurück gegeben:
Aus D:\Temp\a\b\c\Noname1.html
hat der mir mit
../../test.mht
den hier gemacht
D:/Temp/a/test.mht
Naja.
Eine Lösung für VB kann ich dir nicht geben, da ich kein VB kann.
Wenn du VB Programmierst dann kannst du es dir eigendlich auch selber schreiben, wie man das ungefähr macht kannst du ja an mein beispiel sehen. Sind halt nur andere Befehle und die Syntax sieht vielleicht auch etwas anders aus.
Aber das Prinzip müsste das selbe sein.
MfG
Wie die Slashs werden durch Kommas ersezt?
Komisch als ich es ausprobiert habe hat es mir den absoluten Pfad zurück gegeben:
Aus D:\Temp\a\b\c\Noname1.html
hat der mir mit
../../test.mht
den hier gemacht
D:/Temp/a/test.mht
Naja.
Eine Lösung für VB kann ich dir nicht geben, da ich kein VB kann.
Wenn du VB Programmierst dann kannst du es dir eigendlich auch selber schreiben, wie man das ungefähr macht kannst du ja an mein beispiel sehen. Sind halt nur andere Befehle und die Syntax sieht vielleicht auch etwas anders aus.
Aber das Prinzip müsste das selbe sein.
MfG

