gpt4 book ai didi

javascript - ExtendScript 系统文件夹检查

转载 作者:行者123 更新时间:2023-12-03 10:06:23 26 4
gpt4 key购买 nike

我正在尝试建立一个有助于组织的对话。基本上,它从我们的项目文件夹中提取所有文件夹并对它们的名称进行排序并将它们放入下拉列表中。然后,用户将选择他们正在处理的任何项目,输入姓名缩写,添加简短描述,最后添加版本号 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。

如果有人能解释如何在文件夹列表排序时使进度条工作,那就 super 加分了。我有大约 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)仍然很陌生,所以有时最简单的事情最容易被忽视。非常感谢任何帮助。

最佳答案

它可能很简单

if (!Folder(folderpath).exists)
Folder(folderpath).create();

while (File(fullpath).exists)
{
dd = "000"+String(Number(dd)+1);
dd = dd.substring(dd.length-3);
fullpath = macVolume+aa+ae+bb+slash+aa+underscore+bb+underscore+cc+underscore+dd+aep;
}

folderpath 似乎未在您当前的代码中使用;我想它也会被填充到您的最终代码中的 fullpath 中。

事实上,如果 Number(dd)999 并且 dd 的 3 位格式可能会导致无限循环所有版本都存在。您可能需要现在考虑这一点,或者稍后承受后果;)

关于javascript - ExtendScript 系统文件夹检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30336461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com