Я пытаюсь построить диалог, который поможет с организацией. По сути, это извлечение всех папок из папки наших проектов, сортировка их имен и помещение их в раскрывающийся список. Затем пользователь выберет любой проект, над которым он работает, введет свои инициалы, добавит краткое описание и, наконец, добавит номер версии 001. В приведенном ниже сценарии у меня все работает нормально. Примером может быть
XXXPROJECTNAME_XXXINTIALS_XXXDESCRIPTION_001.aep
/Volumes/Nacho/Multimedia/PROJECTS/ABC_123_Teaser/01_AE/DW/ABC_123_Teaser_DW_TEST_001.aep
и мы бы поместили это в инициализированную папку внутри нашей файловой структуры, так что /Volumes/Nacho/Multimedia/PROJECTS/ABC_123_Teaser/01_AE/DW
.
Мне нужна помощь, чтобы проверить, существует ли уже папка, и если это не так, создайте папку. Я всегда буду знать, где должна быть папка (/Volumes/Nacho/Multimedia/PROJECTS/ABC_123_Teaser/01_AE/DW), поэтому мне нужен способ проверить ее на соответствие другому массиву вызываемых папок. Я чувствую, что моя логика надежна, но навыки кодирования — нет.
Если папка существует, нам нужно проверить и посмотреть, существует ли уже имя файла в этой папке. Если это не так, сохраните с текущим именем, но если оно существует, увеличьте его с 001 до 002.
Супер бонусные баллы, если кто-нибудь может объяснить, как заставить работать индикатор выполнения во время сортировки списка папок. У меня есть около 125 папок для сортировки, что занимает около 7 секунд. Как у меня сейчас, индикатор выполнения делает свое дело около 7 секунд, а затем список сортируется еще 7 секунд. На данный момент индикатор выполнения - наименьшая из моих проблем.
win=new Window("palette","AE Naming",[0,0,525,60],{resizeable:true,});
panel_1=win.add("panel",[5,5,525,57]);
downlist_1=panel_1.add("dropdownlist",[5,25,185,46] ,["PROJECT LIST"]);
edittext_1=panel_1.add("edittext",[190,25,250,45] ,"INITIALS",{readonly:0,noecho:0,borderless:0,multiline:0,enterKeySignalsOnChange:1});
edittext_2=panel_1.add("edittext",[255,25,380,45] ,"DESCRIPTION",{readonly:0,noecho:0,borderless:0,multiline:0,enterKeySignalsOnChange:1});
edittext_3=panel_1.add("edittext",[385,25,435,45] ,"001",{readonly:0,noecho:0,borderless:0,multiline:0,enterKeySignalsOnChange:1});
edittext_4=panel_1.add("edittext",[5,2,435,22] ,"FULL PATH NAME",{readonly:1,noecho:0,borderless:0,multiline:0,enterKeySignalsOnChange:1});
but_1=panel_1.add("button",[440,2,510,45],"SAVE");
progress_1=panel_1.add("progressbar", [5,0,510,5], 0, 100);
win.center();
win.show();
but_1.onClick = function() {
save();
}
{
var layerNameArray = new Array();
var myFolder = Folder("/Volumes/Nacho/Multimedia/PROJECTS/"); //Search for all Folders in the projects directory
var myJPGFilesArray = myFolder.getFiles(function(f) {return f instanceof Folder});
if(myJPGFilesArray !== null){
for(var n=0; n<myJPGFilesArray.length;n++){
$.writeln(myJPGFilesArray[n].name);
var test = myJPGFilesArray.toString().replace (new RegExp("%20", "g"), " "); //removes the %20 which are spaces
layerNameArray.push(myJPGFilesArray[n].name); //adds Folders to the Array
var sortMe = myJPGFilesArray.sort(); //Alphabetical sort
//////////////PROGRESSBAR ESTIMATED TIME//////////////
while(progress_1.value < progress_1.maxvalue)
{
// this is what causes the progress bar increase its progress
progress_1.value++;
$.sleep(35); //35 is about 7 seconds
}
$.writeln("Sorting Complete");
///////////////////////////////////////////////////////
downlist_1.add("item", sortMe[n].name); //Adds sorted Folders to the dropdownlist
downlist_1.onChange = function () {(downlist_1.selection)}
edittext_1.onChanging = function () {(edittext_1.text)}
edittext_2.onChanging = function () {(edittext_2.text)}
edittext_3.onChanging = function () {(edittext_3.text)}
function save() {
//var combined = ("Volumes/Nacho/Multimedia/PROJECTS/" + downlist_1.selection + "/01_AE/" + edittext_1.text + "");
var aa = downlist_1.selection.toString(); //PROJECT
var bb = edittext_1.text.toString(); //INITIALS
var cc = edittext_2.text.toString(); //DESCRIPTION
var dd = edittext_3.text.toString(); //VERSION
var ae = "/01_AE/"; //where intials fodler should live
var slash = "/"
var underscore = "_"
var aep = ".aep"
var macVolume = "/Volumes/Nacho/Multimedia/PROJECTS/";
var folderpath = macVolume+aa+ae+bb;
var fullpath = macVolume+aa+ae+bb+slash+aa+underscore+bb+underscore+cc+underscore+dd+aep;
edittext_4.text = fullpath;
alert(folderpath);
alert(fullpath);
//Check to see if folder in folder path exists. if it does continue on. if it doesn't create a new folder.
//Check to see if the file name.aep exitsts AKA fullpath. If it does exist then version up. 001 becomes 002. If not, just save as fullpath.
}
}
}
}
Я знаю, что решение, вероятно, очень простое, но я все еще очень новичок во всем этом, как в Javascript, так и в Extendscript, поэтому иногда проще всего упустить самые простые вещи. Буду признателен за любую оказанную помощь.