Vielen Dank für Ihre Antworten, aber nach einigem Suchen fand ich meine Antwort. Für alle, die für eine ähnliche Lösung sucht - fand ich eine ausgezeichnete Skript here, die eine wirklich robuste Ausgabe bereitstellt, die ich mir vorstellen kann für eine Vielzahl von unterschiedlichen Szenarien eingesetzt werden:
/**
* Google Apps Script - List all files & folders in a Google Drive folder, & write into a speadsheet.
* - Main function 1: List all folders
* - Main function 2: List all files & folders
*
* Hint: Set your folder ID first! You may copy the folder ID from the browser's address field.
* The folder ID is everything after the 'folders/' portion of the URL.
*
* @version 1.0
* @see https://github.com/mesgarpour
*/
// TODO: Set folder ID
var folderId = 'My folder ID';
// Main function 1: List all folders, & write into the current sheet.
function listFolers(){
getFolderTree(folderId, false);
};
// Main function 2: List all files & folders, & write into the current sheet.
function listAll(){
getFolderTree(folderId, true);
};
// =================
// Get Folder Tree
function getFolderTree(folderId, listAll) {
try {
// Get folder by id
var parentFolder = DriveApp.getFolderById(folderId);
// Initialise the sheet
var file, data, sheet = SpreadsheetApp.getActiveSheet();
sheet.clear();
sheet.appendRow(["Full Path", "Name", "Date", "URL", "Last Updated", "Description", "Size"]);
// Get files and folders
getChildFolders(parentFolder.getName(), parentFolder, data, sheet, listAll);
} catch (e) {
Logger.log(e.toString());
}
};
// Get the list of files and folders and their metadata in recursive mode
function getChildFolders(parentName, parent, data, sheet, listAll) {
var childFolders = parent.getFolders();
// List folders inside the folder
while (childFolders.hasNext()) {
var childFolder = childFolders.next();
// Logger.log("Folder Name: " + childFolder.getName());
data = [
parentName + "/" + childFolder.getName(),
childFolder.getName(),
childFolder.getDateCreated(),
childFolder.getUrl(),
childFolder.getLastUpdated(),
childFolder.getDescription(),
childFolder.getSize()
];
// Write
sheet.appendRow(data);
// List files inside the folder
var files = childFolder.getFiles();
while (listAll & files.hasNext()) {
var childFile = files.next();
// Logger.log("File Name: " + childFile.getName());
data = [
parentName + "/" + childFolder.getName() + "/" + childFile.getName(),
childFile.getName(),
childFile.getDateCreated(),
childFile.getUrl(),
childFile.getLastUpdated(),
childFile.getDescription(),
childFile.getSize()
];
// Write
sheet.appendRow(data);
}
// Recursive call of the subfolder
getChildFolders(parentName + "/" + childFolder.getName(), childFolder, data, sheet, listAll);
}
};
Da alle Unter-Ordner den gleichen Namen haben, können Sie sie alle auf einmal mit 'DriveApp.getFoldersByName bekommen kann (name) 'Wenn Sie nichts aus dem übergeordneten Ordner benötigen, können Sie das verwenden. Wenn der Name des übergeordneten Ordners benötigt wird, könnten Sie Folgendes verwenden: 'var folders = DriveApp.getFoldersByName (name); var parentFldrs = folders.next(). getParents(); ' –
Danke für die Richtung Sandy - Ich versuche, den obigen Code zu verwenden, um die Dateien mit Ihrem Vorschlag aufzulisten, aber die Ausgabe ist leer. Irgendwelche Vorschläge? – Tiana
zeigen Sie Ihren aktualisierten Versuch in der Frage und welcher Teil fehlschlägt. –