Я пытаюсь составить список всех файлов внутри древовидной структуры. Я нашел следующий код, который я нашел в Интернете, который делает это, но выводит имена папок и файлов в журнал ошибок. (Я использую BetterLog для отправки этого файла в электронную таблицу.Я хотел бы, чтобы информация сохранялась в массиве при запуске функции, проблема в том, что функция является рекурсивной, и я не могу понять, как решить эту проблему.Передача массива из рекурсивной функции
function getChildFolders(parent) {
Logger = BetterLog.useSpreadsheet('1nJ3fTFYQgwwXYik3LqAoX2M1KHj4lskrxyX0Y9p6ci8');
var childFolders = parent.getFolders();
while (childFolders.hasNext()) {
var childFolder = childFolders.next();
Logger.log("Folder Name: " + childFolder.getName());
Logger.log("Folder URL: " + childFolder.getUrl());
var files = childFolder.getFiles();
while (files.hasNext()) {
// Print list of files inside the folder
Logger.log(files.next().getName());
}
// Recursive call for any sub-folders
getChildFolders(childFolder);
}
}
Делает ли он и удерживает копию всего массива каждый раз, когда функция вызывается рекурсивно? –
Нет, вам нужно создать массив и передать его функции, которая затем передает ее на рекурсивные вызовы. На протяжении всего исполнения есть только один массив. Нет копий или рекреационных массивов. –
Спасибо. Это прекрасно отвечает на мой вопрос. –