[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt relativer vs. absoluter Pfad in Javascript

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

relativer vs. absoluter Pfad in Javascript

faxinger666
Beiträge gesamt: 167

5. Okt 2017, 16:28
Beitrag # 1 von 6
Bewertung:
(6136 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich möchte folgendes lösen:
Mein Skript liegt in einem Ordner "test"
Ich möchte mit dem Script eine txt einlesen die direkt in einem Unterordner namens "TestOrdner" liegt.
Wenn ich den absoluten Pfad angebe funktioniert das einlesen auch, aber wie kann ich das mit einer relativen Pfadangabe lösen?

Code
var _datei = File("~/Library/Preferences/Adobe InDesign/Version 8.0/de_DE/Scripts/Scripts Panel/test/TestOrdner/test.txt"); 


Danke für eure Hilfe
X

relativer vs. absoluter Pfad in Javascript

WernerPerplies
Beiträge gesamt: 2762

5. Okt 2017, 17:13
Beitrag # 2 von 6
Beitrag ID: #559778
Bewertung:
(6124 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Um einen relativen Pfad verwenden zu können, benötigst Du den Ausgangspfad.

Sofern Dein Script nicht aus dem ESTK gestartet wird, sollte dies klappen:

Zitat var /*File*/file = new File(wpsGetScriptPath() +"/TestOrdner/test.txt");
alert(file.fsName);
/*string*/function wpsGetScriptPath()
{
try
{
var /*File*/file = app.activeScript;
}
catch(error)
{
return null;
}
return file.path;
}



als Antwort auf: [#559777]

relativer vs. absoluter Pfad in Javascript

Gerald Singelmann
  
Beiträge gesamt: 6269

5. Okt 2017, 21:49
Beitrag # 3 von 6
Beitrag ID: #559785
Bewertung:
(6099 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Die Routine, um den absoluten Pfad zum aktuellen Script zu finden, die Adobe im Sample Script "findChangeByList" verwendet, ist

Code
function myFindFile(myFilePath){ 
var myScriptFile = myGetScriptPath();
var myScriptFile = File(myScriptFile);
var myScriptFolder = myScriptFile.path;
myFilePath = myScriptFolder + myFilePath;
if(File(myFilePath).exists == false){
//Display a dialog.
myFilePath = File.openDialog("Choose the file containing your find/change list");
}
return myFilePath;
}
function myGetScriptPath(){
try{
myFile = app.activeScript;
}
catch(myError){
myFile = myError.fileName;
}
return myFile;
}



als Antwort auf: [#559777]

relativer vs. absoluter Pfad in Javascript

faxinger666
Beiträge gesamt: 167

6. Okt 2017, 09:31
Beitrag # 4 von 6
Beitrag ID: #559787
Bewertung:
(6045 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Liebe Skripter,

vielen Dank für eure Antworten.
Ich habe nicht gedacht, dass ein relativer Pfad so kompliziert ermittelt werden muss. Ging da von HTML aus, wo es ja ganz einfach ist.

Ich glaube ich werde doch lieber den absoluten Pfad verwenden weil das nur eine Codezeile ist.

Danke für eure Benühungen


als Antwort auf: [#559785]

relativer vs. absoluter Pfad in Javascript

Gerald Singelmann
  
Beiträge gesamt: 6269

6. Okt 2017, 12:03
Beitrag # 5 von 6
Beitrag ID: #559791
Bewertung:
(6027 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ah, Sie haben den Punkt nicht verstanden.

Es gibt keine relativen Pfadangaben für Dateien.

Die Antworten zeigen stattdessen auf, wie man den absoluten Pfad automatisch generiert, statt explizit
Zitat "~/Library/Preferences/Adobe InDesign/Version 8.0/de_DE/Scripts/Scripts Panel/test/TestOrdner/test.txt"

in den Code zu schreiben.

Denn diese Zeile wird beim nächsten InDesign Update oder falls das Script umbenannt wird, nicht mehr funktionieren.

Hardcoding von Pfaden ist OK, solange man testet, danach ist es eine sehr gute Idee, den absoluten Pfad wie gezeigt zu ermitteln.


als Antwort auf: [#559787]

relativer vs. absoluter Pfad in Javascript

faxinger
Beiträge gesamt: 246

17. Okt 2017, 15:56
Beitrag # 6 von 6
Beitrag ID: #559981
Bewertung:
(5779 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
vielen Dank


als Antwort auf: [#559791]
X