Я не знаю, как работает этот API, но это может помочь вам сортировать файлы.
Сначала полностью удалите цикл while
и вставьте вместо него следующее:
var files = [];
// creates an array of file objects
while (ezIter.hasNext()) {
files.push(ezIter.next());
}
// sorts the files array by file names alphabetically
files = files.sort(function(a, b){
var aName = a.getName().toUpperCase();
var bName = b.getName().toUpperCase();
return aName.localeCompare(bName);
});
files.forEach(function(file){
var name = file.getName();
var url = file.getUrl();
range = 'AC'+(i);
var filename = 'ezvideo'+(i-1);
var semi = ";";
var hyp = "=hyperlink(\"";
var quot = "\"";
var clos = ")";
var title = hyp + url + quot + semi + quot + filename + quot + clos; // str='=hyperlink("' + f.getUrl() + '","' + f.getName() + '")';
ss.getRange(range).setValue(title);
i++;
});
ОБНОВЛЕНИЕ: Исходя из предложений по оптимизации, вы можете вызвать getName
один раз для каждого файла, например так:
var files = [];
// creates an array of file objects
while (ezIter.hasNext()) {
var file = ezIter.next();
files.push({name: file.getName(), url: file.getUrl()});
}
// sorts the files array by file names alphabetically
files = files.sort(function(a, b){
var aName = a.name.toUpperCase();
var bName = b.name.toUpperCase();
return aName.localeCompare(bName);
});
files.forEach(function(file){
var name = file.name;
var url = file.url;
range = 'AC'+(i);
var filename = 'ezvideo'+(i-1);
var semi = ";";
var hyp = "=hyperlink(\"";
var quot = "\"";
var clos = ")";
var title = hyp + url + quot + semi + quot + filename + quot + clos; // str='=hyperlink("' + f.getUrl() + '","' + f.getName() + '")';
ss.getRange(range).setValue(title);
i++;
});