Javascript getFiles()不是文件夹

Javascript getFiles()不是文件夹,javascript,photoshop-script,getfiles,Javascript,Photoshop Script,Getfiles,我在一个临时文件夹里有几个文件。我可以通过编写以下脚本将它们加载到Photoshop中: var sourceFolder = Folder("C:\\temp"); if (sourceFolder != null) { var fileList = sourceFolder.getFiles(); } 这很好,但是我如何忽略可能也在其中的目录(例如C:\temp\waffles) 我知道我可以检查有效的图像扩展,然后将它们添加到新的文件列表数组中,然后加载它。我认

我在一个临时文件夹里有几个文件。我可以通过编写以下脚本将它们加载到Photoshop中:

  var sourceFolder = Folder("C:\\temp");
  if (sourceFolder != null)
  {
     var fileList = sourceFolder.getFiles();
  }
这很好,但是我如何忽略可能也在其中的目录(例如C:\temp\waffles)

我知道我可以检查有效的图像扩展,然后将它们添加到新的文件列表数组中,然后加载它。我认为搜索选项TopDirectoryOnly在这里无效。

因为getFiles()“”您需要迭代返回的每个对象并测试它是什么类型的对象。来自Adobe的Creative Suite 5

有几种方法可以区分文件和文件夹对象。例如:

如果(f instanceof File).
如果(f.open的类型==“未定义”)//文件夹无法打开。

如果我在获取文件夹或文件时使用此选项,我会避免以后写入
If()

var fileList = sourceFolder.getFiles(function(f) { return f instanceof File; });
仅获取文件夹时也是如此:

var fileList = sourceFolder.getFiles(function(f) { return f instanceof Folder; });
但是,建议尽可能少地使用
getFiles
函数,因为代码会运行得更快

我还使用
RegExp
对象仅拾取文件夹中的特定子文件夹

例如,如果我将一个正则表达式设置为“regthis”变量,如下所示。使用“getFiles”收集的文件夹的名称为:
A) 结尾必须有“12345678”或“12345678”之前必须有大写字母
B) 还必须在前两个字符中的一个(“u1”或“c”)
C) B+a前必须有1个小写字母“a-v”
D) 在C+B+A之前不得有“x”或“y”或“z”

var ID_ = '12345678';
var regthis = new RegExp( '([^x-z]{1}[a-v]{1}[_|c]{1})([A-Z]?'+ID_+'?)$','i');
var sameIDfolder = Folder(myFolder).getFiles(regthis);

可能重复感谢Rich。那正是我想要的!