我正在使用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
答案 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()具有原始值。