I am trying to copy my some of the folders in google drive using google scripts and I get error on the topFolder.hasnext() line .I've already seen the answers of these questions and they didn't help :
TypeError: Cannot find function hasNext in object (Folder with date ID)
Why cannot Object FolderIterator find function getId?
TypeError: Cannot find function hasNext in object
My code is like this :
function onOpen(){
SpreadsheetApp.getUi()
.createMenu("Hello there Click Me")
.addItem('Copy the files and folder to your specified dir','fCopier')
.addToUi()
}
var thisSheet = SpreadsheetApp.getActiveSheet();
var folderId = thisSheet.getRange("B1").getValue();
var folderId = folderId.toString().trim();
var ttopFolder = DriveApp.getFolderById(folderId);
var topFolder = ttopFolder.getFolders();
var desFolder = thisSheet.getRange("B3").getValue();
var desFolder = desFolder.toString().trim();
var reallyDesFolder = DriveApp.getFolderById(desFolder);
var forFilelist = ttopFolder.getFiles();
var topper = [];
while(topFolder.hasnext()){
topper.push(topFolder.next());
}
var filer = [];
while(forFilelist.hasNext()){
filer.push(forFilelist.next())
}
function fCopier(){
for (var i = 0; i < topper.length; i++) {
var finalfolders = topper[i];
}
var folderCompleto = reallyDesFolder.createFolder(finalfolders);
for(var j =0; j<filer.length; j++){
var finalfiles = filer[j];
}
var fileCompleto = finalfiles.makeCopy(reallyDesFolder);
}
I do not understand why it cannot find hasnext function because in the gs documentation it is similar like this:
var folders = DriveApp.getFolders();
while (folders.hasNext()) {
var folder = folders.next();
Logger.log(folder.getName());
}