selectDialog с адресной строкой вместо раскрывающегося списка со скриптом Photoshop

Я пишу собственный скрипт для Photoshop для пакетной обработки изображений. У меня есть две входные папки и выходная папка, которую мне нужно указать. Прямо сейчас я использую что-то вроде этого для выбора папок:

var inputFolder = Folder.selectDialog("Select a folder of  images to process");

Поскольку я работаю на сервере с довольно глубокой иерархией папок, выбор в раскрывающемся меню, которое Photoshop представляет мне в этом диалоговом окне, может быть настоящей проблемой.

Моя целевая папка на самом деле намного глубже, чем эта...

Было бы намного проще иметь диалог выбора папки с адресной строкой и панелью быстрого доступа, например:

Гораздо легче ориентироваться!

Все другие сценарии PS, которые я копал, используют метод Folder.selectDialog для установки путей к файлам для переменной. Для этого есть причина? Если нет, то как я могу указать Photoshop второй стиль диалогового окна навигации по папкам?


person Dig_Dig_Dig    schedule 14.04.2017    source источник


Ответы (2)


Похоже, что Adobe не поддерживает это диалоговое окно в качестве опции выбора папки.

На форумах Adobe была опубликована аналогичная тема, где предлагалось обходное решение:

https://forums.adobe.com/thread/1094128

Предложенное решение состоит в том, чтобы использовать функцию saveDialog вместо selectFolder. Это дает вам диалоговое окно папки, которое нам нужно, но имеет недостаток, заключающийся в необходимости вводить фиктивное имя в путь к имени файла. В верхней части диалогового окна также написано «Сохранить как», что сбивает с толку.

Вот что было предложено:

автор lilsmokie, 8 ноября 2012 г., 14:19

 var dskTop = Folder.desktop;
    var dskPth = String(dskTop);
    var newSpot = new File(dskPth+"/poop");
    var selectedFolder = newSpot.saveDlg('Select Destination Folder');
    var illFilePath = selectedFolder.path;
    alert(illFilePath); 

Это открывает диалоговое окно на рабочем столе. Затем введите «какашки» или что угодно в текстовом поле. Там пользователь может перейти в любое место. Когда они сохранятся, illFilePath будет иметь путь к папке. Не идеально, но достаточно близко для меня прямо сейчас.

Я также обнаружил, что могу установить начальное местоположение selectDialog, используя вместо этого selectDlg:

var outputFolder = Folder(app.activeDocument.path).selectDlg("Select a folder to output images to:");

Это дает некоторый контроль над начальным местоположением, так что пользователю не нужно щелкать миллион раскрывающихся списков.

person Dig_Dig_Dig    schedule 19.04.2017

Внизу вашего первого снимка экрана вы можете увидеть область ненабранного текста Folder: This PC. Он работает так же, как адресная строка. Вы можете ввести (или вставить) что-то вроде \\server\work\folder\subfolder в эту область, и вы сразу же получите эту папку (в данном случае «подпапку»).

В MacOS в этом диалоговом окне не отображается область ввода Folder: .... Но вы можете в любое время нажать Cmd-Shift-G и получить системную «адресную строку».

person Yuri Khristich    schedule 02.10.2020