Reputation: 31
07/19/2017 The FileIterator.next()
method has ceased to work.
Message: The following object can not be obtained: iterator has reached the end of the set.
Search for a file created before 07/19/2017 is correct.
All scripts worked correctly for a long time until 07/19/2017, perhaps that has changed in the methods of GAS.
Where can I go for help?
Code sample
var file = DriveApp.getFilesByName('FileName').next().getId();
and
var files = DriveApp.getFilesByName('Filename');
if (files.hasNext()) {
SpreadsheetApp.openById(files.next().getId()).getSheets()[0].appendRow([new Date(), Family, Name]);
}
and
var firstLevelFolderName = "MyFolderName";
var folders = DriveApp.getFoldersByName(firstLevelFolderName);
var firstLevelFolder = (folders.hasNext()) ? folders.next() : DriveApp.createFolder(firstLevelFolderName);
Upvotes: 3
Views: 576
Reputation: 64082
This is what works for me. It's a function I have in my utilities library.
function loadFile(filename,folderID)
{
var filename = (typeof(filename) !== 'undefined')? filename : DefaultFileName;
var folderID = (typeof(folderID) !== 'undefined')? folderID : DataFolderID;
var fldr = DriveApp.getFolderById(folderID);
var file = fldr.getFilesByName(filename);
var s = '';
while(file.hasNext())
{
var fi = file.next();
var target = fi.getName();
if(target == filename)
{
s = fi.getBlob().getDataAsString();
}
}
return s;
}
Upvotes: 1