我有一个脚本可以返回文件夹中包含的所有文件。但是,有一些文件类型,我不希望我的脚本做任何事情。我只是想让它真的跳过它,好像它不在那里,只处理其他文件类型。
我怎样才能做到这一点?
到目前为止,这是我获取文件夹中包含的所有文件的方式:
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。目前,只要有一种我希望它忽略的类型,就会引入文件夹中的每一个图像。
答案 0 :(得分:2)
您可以遍历列表,只收集您关注的扩展名。我看到photoshop所以我只假设图像文件:
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
}
txt
,html
和gif
是您要跳过的文件扩展名,您可以使用|