Javascript忽略所有文件而不是一个文件

时间:2013-10-29 14:01:39

标签: javascript

我正在尝试让我的javascript忽略一个文件类型扩展名,该文件类型扩展名保存在包含一堆photoshop图像的文件夹中。对于文件夹中的所有其他文件类型,我有它,以便这些文件类型填充窗口,用户可以导入到他们的工作空间。

我修改了我的脚本以忽略我想要忽略的文件扩展名,但是它不再填充窗口,其中包含文件夹中包含的所有其他文件类型。但是当我从文件夹中取出我想要忽略的文件时,窗口会按原样填充。

这是我检查文件夹中文件类型的时刻:

//Prompt for folder location
var Path = Folder.selectDialog("Select Folder Location for Renders")
// Use the path to the application and append the samples folder 
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++)
{
  var filename = fileList[i].name;
   if (filename.match(/\.(stitchinfo)$/i) == null) 
   {
      if(fileList[i].name.substring(0,beautyRender.length) === beautyRender)
      {
        renderTypes.push(fileList[i].name); 
      }
   }
 } 

任何人都可以看到我做错了什么并且需要修改吗?

更新 我仍然试图让这个工作,并在下面的一个海报的帮助下,我修改了我的代码到以下:

for (var i = 0; i < fileList.length; i++)
{
  var filename = fileList[i].name;
   if (filename.match(/\.(stitchinfo)$/i) == null) 
   {
        renderTypes.push(fileList[i].name); 
   }
}

然而,这个新代码出现了一个新问题,它返回文件夹中包含的每个文件并显示它。

我仍然难以理解如何让我按照自己的意愿工作。请有人帮帮我吗?

3 个答案:

答案 0 :(得分:1)

您正在创建稀疏数组,因为当忽略renderTypes中的文件名时,您会跳过fileList中的元素。这可能会使您的渲染代码混乱。改为:

renderTypes.push(fileList[i].name);

答案 1 :(得分:1)

如果:

for (var i = 0; i < fileList.length; i++)
{
   var filename = fileList[i].name;
   if (filename.match(/\.(stitchinfo)$/i) == null) 
   {
      if(fileList[i].name.substring(0,beautyRender.length) === beautyRender)
      {
        renderTypes.push(fileList[i].name); 
      }
   }

} 
  1. 错误使用数组
  2. 缺少“;”
  3. 不必要地使用“继续”。

答案 2 :(得分:0)

管理以获得此修复程序。

我最终做的是创建一个新功能并将其传递给我检查文件夹位置的调用。

function ignoreMe(f)
{
    return f.name.match(/\.(stitchinfo)$/i) == null;
}

文件夹检查:

var fileList = samplesFolder.getFiles(ignoreMe);