Javascript获取所有文件减去某些文件扩展名

时间:2013-10-29 12:12:24

标签: javascript photoshop

我有一个脚本可以返回文件夹中包含的所有文件。但是,有一些文件类型,我不希望我的脚本做任何事情。我只是想让它真的跳过它,好像它不在那里,只处理其他文件类型。

我怎样才能做到这一点?

到目前为止,这是我获取文件夹中包含的所有文件的方式:

var samplesFolder = Folder(Path)
//Get the files 
var fileList = samplesFolder.getFiles()
//Creat Array to hold names
var renderTypes = new Array();
//Parse Initial name to get similar render elements
var beautyRender = fileList[0].name
beautyRender = beautyRender.substr(0, beautyRender.length-4)


//Get the render elements with a similar name
for (var i = 0; i < fileList.length; i++)
{
    if(fileList[i].name.substring(0,beautyRender.length) === beautyRender)
    {
            renderTypes[i] = fileList[i].name  
    }

 }

这不是用于网络目的我应该赶紧添加。

修改

以上是我必须获取文件夹中所有图像文件的完整代码,并在用户选择了要使用的文件夹后将其带入photoshop。目前,只要有一种我希望它忽略的类型,就会引入文件夹中的每一个图像。

2 个答案:

答案 0 :(得分:2)

您可以遍历列表,只收集您关注的扩展名。我看到所以我只假设图像文件:

var distilledFileList = [];
for (var i = 0; i < fileList.length; i++){
  if (/\.(?:jpe?g|png|gif|psd)$/i.test(fileList[i].name)){
    distilledFileList.push(fileList[i]);
  }
}

现在distilledFileList仅包含*.jpg*.jpeg*.png*.gif*.psd个文件。

如果你想要一种更简单(更易阅读)的方式来检查扩展(也许你不像正则表达式那样流畅):

// fileList = ....

// setup an array of bad extensions here:
var bad = ['txt', 'log', 'db'],
    // holds new list of files that are acceptable
    distilledFileList = [];

// iterate over entire list
for (var i = 0; i < fileList.length; i++){
  // grab the file extenion (if one exists)
  var m = fileList[i].name.match(/\.([^\.]+)$/);
  // if there is an extenions, make sure it's now in the
  // 'bad' list:
  if (m && bad.indexOf(m[1].toLowerCase()) != -1){
    // it's safe, so add it to the distilled list
    distilledFileList.push(fileList[is]);
  }
}

答案 1 :(得分:1)

假设fileList只是一个字符串数组,你可以做以下几点:

for (var i = 0, len = fileList.length; i < len; i++) {
    var filename = fileList[i].name;
    if (filename.match(/\.(txt|html|gif)$/i) !== null) { continue; }
    // Your logic here
}

txthtmlgif是您要跳过的文件扩展名,您可以使用|

分隔更多内容