我有一个非常烦人的问题。
var Scriptfile = new File($.fileName);
var basePath = Scriptfile.path;
var topFolder = new Folder(basePath+"/actions");
var fileandfolderAr = scanSubFolders(topFolder,/\.(atn)$/i);
var fileList = fileandfolderAr[0];
for (var a = 0 ;a < fileList.length; a++) {
var atnFile = new File(fileList[a]);
alert(atnFile.name);
var rex = new RegExp (decodeURI(atnFile.name.replace(/\.[^\.]+$/, '')), "g");
if (!atnFile.exists) {
alert("Your ActionSet does not exist!\nPlease contact your administrator.");
return false;
}
var actionList = getActionSets();
//if ActionSet Exists remove it.
var flag = 0;
for (var d in actionList) {
if (decodeURI(actionList[d]).match(rex)) {
flag = 1;
continue;
}
}
if (!atnFile.exists) {
alert("File does not exist");
return false;
}
if (flag == 0) {
app.load(atnFile);
}
}
如果atn文件没有放在包含名称空格的文件夹或子文件夹中,那么这段代码就可以正常工作。
如果我有像“photoshop script”这样的文件夹名称,它将不会加载我的atn文件。
有什么想法吗?
非常感谢你!
答案 0 :(得分:1)
似乎没有人知道如何解决这个问题,你是大程序员。我找到了解决方案。我所要做的就是解码文件的路径。我刚刚将var atnFile = new File(fileList[a]);
替换为var atnFile= new File(decodeURI(fileList[a]));
。我希望这会在某个时候帮助别人。