craftApprentice
craftApprentice

Reputation: 2777

How a iterator can be acccessed from a Folder? ("TypeError: Cannot find function hasNext in object File,File,File..." )

Following this documentation code (where is said that "File iterators can be acccessed from DriveApp or a Folder."):

enter image description here

I wrote this code to iterate through the files of a folder:

var folder = DocsList.getFolderById('0B9HEC6UUJxrsYWNPYko0M3dBRU0');
  var files = folder.getFiles();
  arrayList = [];
  while ( files.hasNext() ) {
   var file = files.next();
    var newArray = [];
    var fileName = file.getName();
    var fileId = file.getId();
    newArray.push(fileName);
    newArray.push("some info");
    newArray.push(fileId);
    arrayList.push(newArray);
  }

But I got this error: TypeError: Cannot find function hasNext in object File,File,File,File,File,File,File,File,File,File,.... How to fix that? How a iterator can be acccessed from a Folder?

Upvotes: 1

Views: 2087

Answers (1)

wchiquito
wchiquito

Reputation: 16551

Be careful, with DocsList Service must use a code like this:

...
var folder = DocsList.getFolderById('*******');
var files = folder.getFiles();
for (var file in files) {
   Logger.log(files[file].getName());
}
...

Drive Service returns an iterator and can use a code like the following:

...
var folder = DriveApp.getFolderById('*******');
var files = folder.getFiles(), file;
while (files.hasNext()) {
    file = files.next();
    Logger.log(file.getName());
}
...

Upvotes: 4

Related Questions