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

Javascript忽略所有文件,而不是一个文件,javascript,Javascript,我试图让我的javascript忽略一个文件类型扩展名,该扩展名保存在一个包含大量photoshop图像的文件夹中。对于文件夹中的所有其他文件类型,我有它,以便这些文件类型填充一个窗口,用户可以导入到他们的工作空间 我修改了脚本以忽略我希望忽略的文件扩展名,但是它不再使用文件夹中包含的所有其他文件类型填充窗口。但是,当我从文件夹中取出我想要忽略的文件时,窗口会按其应该的方式填充 这是我目前检查文件夹中文件类型的工具: //Prompt for folder location var Path =

我试图让我的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); 
      }
   }
 } 
//提示输入文件夹位置
var Path=Folder.selectDialog(“为渲染选择文件夹位置”)
//使用应用程序的路径并附加samples文件夹
var samplesFolder=文件夹(路径)
//获取文件
var fileList=samplesFolder.getFiles()
//创建数组以保存名称
var renderTypes=新数组();
//解析初始名称以获得类似的渲染元素
var beautyRender=文件列表[0]。名称
beautyRender=beautyRender.substr(0,beautyRender.length-4)
//获取具有类似名称的渲染元素
对于(var i=0;i
有人能看出我做错了什么,需要修改吗

更新 我仍在努力实现这一目标,在下面一张海报的帮助下,我将代码修改为:

for (var i = 0; i < fileList.length; i++)
{
  var filename = fileList[i].name;
   if (filename.match(/\.(stitchinfo)$/i) == null) 
   {
        renderTypes.push(fileList[i].name); 
   }
}
for(var i=0;i
然而,这段新代码带来了一个新问题,它返回文件夹中包含的每个文件并显示它


我仍然很困惑,我如何才能让这个工作,因为我想。有人能帮我吗?

您正在创建一个稀疏数组,因为当您忽略
文件列表中的文件名时,会跳过
渲染类型中的元素。这可能会混淆渲染代码。改为:

renderTypes.push(fileList[i].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
  • 数组的错误使用
  • 失踪”
  • 不必要地使用“继续”

  • 设法解决了这个问题

    我最后做的是创建一个新函数,并将其传递到我的调用中,以检查文件夹位置

    function ignoreMe(f)
    {
        return f.name.match(/\.(stitchinfo)$/i) == null;
    }
    
    和文件夹检查:

    var fileList = samplesFolder.getFiles(ignoreMe);
    

    谢谢你的回答。但是,我尝试了这个,它只显示了它应该跳过的文件。对不起,我忘记了反转条件。我的错!再次感谢您的编辑,但是现在它没有显示任何内容。窗口为空,文件夹中有文件可供我测试。我没有您的数据,因此无法真正尝试。你能设置一个JSFIDLE,这样我们就可以修复它了吗?我举了一个例子:它对我有用。如果您有一些不同的数据,请指定。