2014-10-22 5 views
0

Я изучаю и использую Extendscript с After Effects CS6 (обычно использую maxscript и python) для создания подключаемого интерфейса для After Effects. Мне удалось это сделать, но мне нужно перестроить код для поиска в папках в корневой папке, чтобы захватить файлы .jsx, которые образуют узлы в дереве, которое я создал.extendscript, получить имя папки

В настоящее время, все .jsx файлы находятся в одной корневой папке, но из-за перестройки системы папок, теперь мы имеем папку, где находится каждый сценарий

Мне нужно, чтобы иметь возможность вернуться/собирать имена папок в корневой папке в массив, который я могу перебрать в более поздней части скрипта.

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

В корневой папке на изображении ниже является «C: \ AFX \ theRoot \» с папками внутри имени script1, Скрипт2, Script3 script4

Я собирался опубликовать изображение структуры папок, но я не допускается из-за требования иметь определенный рейтинг.

+0

У вас есть подпапки, но вы «не хотите разделить строки»? Почему нет? Это простая операция (и это физически не повредит струны). – usr2564301

+0

Для опытного Java-скриптера это может быть так, но, как уже упоминалось, я не использую Javascript и extendscript на ежедневной основе. Вместо того, чтобы указывать, насколько это просто, возможно, опубликуйте рабочий пример, чтобы я мог учиться на нем, поскольку то, что вы указали до сих пор, не помогает. Я не хочу казаться неблагодарным, но пока ответы не оказали никакой помощи, чтобы помочь двигаться вперед. – EMJAY

+0

Несомненно. Но сначала вы должны просто показать, что у вас есть (или только фрагмент кода, если код длинный, и проблема локализована) и указать, где вы столкнулись с проблемами. Во-вторых, вы описываете проблему *, как будто * вы знаете, как отделить путь, но «не хотите». Отсюда мой вопрос: почему вы не хотите этого делать? – usr2564301

ответ

1

Если у вас уже есть строки. Работа над ними, вероятно, самый простой способ получить имя папки. Вместо расщепления можно также использовать регулярное выражение как это:

var name = yourString.match(/([^\/]*)\/*$/)[1] 

Credit for the regex goes to this thread

Если у вас есть какая-то причина, чтобы не делать это таким образом, есть объект папки в ExtendScript. Вы можете создать новую папку из строки, как это:

var folder = new Folder("/your/folders/name"); 

И получить имя, как это:

var name = folder.name 

Надеется, что это помогает.

+0

Спасибо за помощь и информацию, это очень ценится. Когда вы видите код, это всегда кажется логичным. После этого я вывешу свой пример скрипта. У меня уже есть функция, которая ищет файлы .jsx и сопоставляет их из одного места в папке, мне просто интересно, как я буду проходить через набор папок в указанной корневой папке, чтобы получить имя сценария из отдельных папок и игнорировать любые другие типы файлов. Я знаю логику, а не синтаксис в настоящее время, но каждый день отрывается от нее. – EMJAY

+0

Поскольку я являюсь создателем вопроса, я не уверен, почему мои ответы на мой вопрос были удалены. Мне действительно нужна помощь в этом вопросе, поэтому надеемся, что этой должности будет разрешено остаться, чтобы я мог получить некоторый вклад. Мне нужно иметь возможность перейти в указанную корневую папку, которая уже существует и не нуждается в создании. Сопоставьте только папки внутри корневой папки в массив Используйте цикл for для итерации по каждой папке и поиска jsx-файлов и добавления результатов в массив. – EMJAY

+0

Мне не нужно создавать новые папки. Мне нужно собрать существующие папки в существующей корневой папке и сохранить имена папок, найденные в этой корневой папке, в массив, чтобы я мог перебирать их в функции, которая будет динамически создавать дерево с помощью значков, найденных в подпапках и т. Д. – EMJAY

Смежные вопросы