以下是一个新的Apps Script函数,可以递归扫描任意给定文件夹的所有子文件夹,并列出其中的所有文件和文件夹。该函数包括递归调用和分支判断,因此非常灵活,可以适用于任何大小和深度的文件夹结构。
function listAllFilesInFolder(folder) {
var files = folder.getFiles();
var folders = folder.getFolders();
while (files.hasNext()) {
var file = files.next();
Logger.log(file.getName());
}
while (folders.hasNext()) {
var subFolder = folders.next();
Logger.log("Subfolder: " + subFolder.getName());
listAllFilesInFolder(subFolder);
}
}
要使用此函数,只需传递要扫描的文件夹的Folder对象即可。例如,在Google Drive中列出所有文件和文件夹的示例代码如下:
function listAllDriveFiles() {
var rootFolder = DriveApp.getRootFolder();
listAllFilesInFolder(rootFolder);
}
这将递归扫描Google Drive的根文件夹并列出其中的所有文件和文件夹。您还可以将该函数与其他Apps Script操作结合使用,例如将文件上传到特定的文件夹或将其复制到其他文件夹中。
请注意,递归扫描可能需要一些时间,具体取决于您要扫描的文件夹和其子文件夹的数量和大小。如果您遇到性能问题,可以考虑添加缓存或采用其他优化策略。