首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getFiles()不是文件夹

getFiles()不是文件夹
EN

Stack Overflow用户
提问于 2014-02-07 23:21:44
回答 2查看 15.7K关注 0票数 1

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

代码语言:javascript
复制
  var sourceFolder = Folder("C:\\temp");
  if (sourceFolder != null)
  {
     var fileList = sourceFolder.getFiles();
  }

这一切都很好,但我如何忽略可能也在其中的目录(如C:\temp\waffles)。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-12 11:48:32

因为getFiles() "Returns an array of File and Folder objects“,所以您需要遍历返回的每个对象,并测试它是什么类型的对象。来自Adobe的Creative Suite5 Javacript Tools Guide

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

if (f instanceof File)...

if (typeof f.open == "undefined")... //Folders do not open.

票数 2
EN

Stack Overflow用户

发布于 2015-04-13 17:02:24

如果我在获取文件夹或文件时使用此命令,则会避免稍后编写if()

代码语言:javascript
复制
var fileList = sourceFolder.getFiles(function(f) { return f instanceof File; });

仅获取文件夹时也是如此:

代码语言:javascript
复制
var fileList = sourceFolder.getFiles(function(f) { return f instanceof Folder; });

但是,建议尽可能少使用getFiles函数,因为代码会运行得更快。

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

例如,如果我设置一个正则表达式,比如'regthis‘变量,如下所示。使用'getFiles‘收集的文件夹将与其名称相同:

A)必须在'12345678‘的末尾或’12345678‘之前有一个大写字母;

B)在A之前还必须有2个字符之一('_‘或'c');

C) B+A前必须有1个小写字母'a-v‘;

D)在C+B+A之前不能有'x‘、'y’或'z‘;

代码语言:javascript
复制
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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21631437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档