Photoshop脚本.DS_Store

时间:2017-09-13 06:57:20

标签: photoshop-script

我正在使用Photoshop脚本。我从文件夹中获取文件。我的问题是,当我获取文件并将它们放在一个数组中时,该数组包含文件夹中的隐藏文件,例如“.DS_Store”。我可以通过使用:

解决这个问题
if (folders[i] != "~/Downloads/start/.DS_Store"){}

但是我想用更好的东西,因为我有时看很多文件夹而且不知道“〜/ Downloads / start /”部分。

我尝试使用indexOf,但Photoshop脚本不允许indexOf。有没有人知道检查“.DS_Store”是否在Photoshop脚本中的字符串“〜/ Downloads / start / .DS_Store”中?

我看到了这个答案,但我不知道如何使用它来测试:Photoshop script to ignore .ds_store

2 个答案:

答案 0 :(得分:1)

对于其他寻求解决此问题的人,而不是显式地尝试跳过诸如.DS_Store之类的隐藏文件,您可以使用Folder Object的getFiles()方法并传递一个表达式来构建实际想要的文件类型数组打开。使用此方法的一种简单方法如下:

// this expression will match strings that end with .jpg, .tif, or .psd and ignore the case
var fileTypes = new RegExp(/\.(jpg|tif|psd)$/i);

// declare our path
var myFolder = new Folder("~/Downloads/start/");

// create array of files utilizing the expression to filter file types
var myFiles = myFolder.getFiles(fileTypes);

// loop through all the files in our array and do something
for (i = 0; i < myFiles.length; i++) {
     var fileToOpen = myFiles[i];
     open(fileToOpen);
     // do stuff...
}

答案 1 :(得分:0)

对于任何人来说,我都使用了Polyfill:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf

  

indexOf()被添加到第5版的ECMA-262标准中;如   这样它可能不会出现在所有浏览器中。你可以解决这个问题   通过在脚本开头使用以下代码。这个   将允许您在仍然没有本机支持时使用indexOf()。   此算法与ECMA-262第5版中指定的算法匹配,   假设TypeError和Math.abs()具有原始值。