Reputation: 2777
Following this documentation code (where is said that "File iterators can be acccessed from DriveApp or a Folder."):
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
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