Question

I have a script that returns all the files contained within a folder. However, there are some file types in there that I do not want my script to do anything with. I just want it to literally skip over it as if it wasn't there and only deal with the other file types.

How can I achieve this?

So far this is how I'm getting all the files contained within a 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++)
{
    if(fileList[i].name.substring(0,beautyRender.length) === beautyRender)
    {
            renderTypes[i] = fileList[i].name  
    }

 }

This is not used for web purposes I should hasten to add.

edit

Above is the complete code I have to get all the image files in a folder and bring them into photoshop once the user has selected the folder they want to use. At the moment it is bringing in every single image in the folder when there is a single type I want it to ignore.

Was it helpful?

Solution 2

Assuming fileList is just an array of strings you could do something along the lines of:

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
}

Where txt, html and gif are file extensions you want to skip over, you can add more by separating them with |

OTHER TIPS

You can iterate over the list and only collect those with extensions you care about. i see so I'll assume image files only:

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]);
  }
}

Now distilledFileList contains only *.jpg, *.jpeg, *.png, *.gif, and *.psd files.

if you want an easier (more readable) way to check extensions (maybe you're not as fluent as regular expressions):

// 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]);
  }
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top