как использовать объект папки javascript

Я использовал объект папки как часть сценария, написанного на javascript и используемого для сценариев Photoshop cs6.

Мой вопрос касается объекта папки

В справочном документе cs6 javascript говорится следующее об объектах папки.

«ExtendScript определяет классы JavaScript File и Folder для инкапсуляции ссылок на файловую систему независимым от платформы способом; см. раздел «Поддержка JavaScript в Adobe Photoshop CS6» на стр. 32. Дополнительные сведения об этих классах см. в Руководстве по инструментам JavaScript».

(ExtendScript — это расширенная реализация JavaScript от Adobe)

Я могу установить каталог Folders, используя что-то похожее на Folder.setDialogue (код находится на моем другом компьютере, поэтому я не могу вспомнить, какой именно метод, но это предлагает пользователю выбрать папку.

Я хочу жестко закодировать расположение папки в скрипте

в документации сказано, что объект папки принимает папку как конструктор, но я не могу заставить эту работу работать

я пробовал код, который выглядит примерно так

Папка (c:/какая-то папка) и пытались заменить текстовые символы их шестнадцатеричными значениями, но это не сработало.

Как заставить это работать?


person megaman    schedule 31.01.2014    source источник


Ответы (2)


Что-то типа:

var myfolder= Folder("path/to/folder");
if(myfolder.exists) alert("got it");

Должно сработать. Взгляните на набор инструментов сценария расширения и средство просмотра объектной модели в разделе справки.

person fabianmoronzirfas    schedule 01.02.2014
comment
Где найти средства просмотра объектных моделей? - person megaman; 02.02.2014
comment
В меню помощи ESTK - person fabianmoronzirfas; 03.02.2014

Я тоже нашел эту часть extendScript сложной и недостаточно документированной.

Обратите внимание, что extendScript может выражать пути как URI (экранировать все не-ascii!) и как специфичные для системы (Win/Mac — каждый из которых имеет различный набор «запрещенных» символов).

Файловый объект имеет два свойства: fullName (URI) и fsName (путь к файловой системе).

Я думаю, что вам нужно передать конструктору URI, а не путь Windows/Mac. Итак, для: (Windows) D:\foo\bar используйте /d/foo/bar

Или вы можете получить открытый файл документа (если он сохранен) в качестве отправной точки. Это работает для меня в Illustrator:

var defaultFilename = "default.ai";
var fpath = app.activeDocument.fullName.path;
var myFolder = fpath || Folder.selectDialog ("Choose a Folder to export to");
if (myFolder === null) return

var myFilePath = myFolder + "/" + defaultFilename;
var myFile = new File(myFilePath).saveDlg("Export as", "Adobe Illustrator files:*.ai");
if (myFile === null) return
// if you get this far, myFile should be meaningful

Удачи!

person brennanyoung    schedule 11.02.2019