2017-02-28 11 views
1

Also habe ich vor kurzem dieses Google Drive-Skript gefunden und versucht, es zu verwenden. Das Skript sollte normalerweise Dateinamen und URL in meinem Google Drive-Ordner erhalten und sie in eine Tabelle kopieren.Wenn ich mein Skript ausführen passiert nichts

Wenn ich auf Ausführen klicke, erhalte ich keinen Fehler und nichts passiert in meinem Laufwerk.

Gibt es Variablen, die ich ändern sollte, damit es funktioniert?

PS: Ich bin sehr neu zu Codierung und kann nicht scheinen zu finden, was mit diesem Code

Vielen Dank im Voraus für Ihre Hilfe ist falsch! Hier

ist der Code:

function myFunction() { 

    function listFilesInFolder(foldername) { 
    // If we have not been provided a foldername, assume we will interact with user. 
    var interactive = (typeof foldername === 'undefined'); 

    // Get name of folder to list 
    if (interactive) { 
    foldername = Browser.inputBox("List files in folder", "Enter folder name", Browser.Buttons.OK_CANCEL); 
    } 

    if (foldername === '') return; // No name provided, exit quietly 

    var folders = DriveApp.getFoldersByName(foldername); 
    if (!folders.hasNext()) { 
    if (interactive) Browser.msgBox("Folder not found."); 
    return; 
    } 
    var folder = folders.next(); 
    var contents = folder.getFiles(); 

    var file, data, sheet = SpreadsheetApp.getActiveSheet(); 
    sheet.clear(); 

    sheet.appendRow(["Name", "Date", "Size", "URL", /*"Download",*/ "Description", "Type"]); 

    // Loop over files in folder, using file iterator 
    while (contents.hasNext()) { 
    file = contents.next(); 

    if (file.getMimeType() == MimeType.GOOGLE_SHEETS) { // "SPREADSHEET" 
     // Skip displaying spreadsheets - I don't know why... 
     continue; 
    } 

    data = [ 
     file.getName(), 
     file.getDateCreated(), 
     file.getSize(), 
     file.getUrl(), 
     //"https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(), 
     file.getDescription(), 
     niceFileType(file.getMimeType()) 
    ]; 

    sheet.appendRow(data); 

    } 
} 

} 
+0

Vielleicht sollten Sie Drive API zuerst aktivieren. Aktivieren Sie [diese] (https://developers.google.com/apps-script/articles/google_apis_reading_list#enabling-google-apis-services). –

+0

@SangbokLee Just did, und das Skript funktioniert immer noch nicht – Mk1

+0

Sie müssen die Drive API nicht aktivieren, um DriveApp zu verwenden. Ist dieses Skript an eine Tabelle angehängt? –

Antwort

1

Zwei Fragen. Dies muss in einem Skript ausgeführt werden, das an eine Tabelle angehängt ist, und Sie haben eine verschachtelte Funktion.

Ihr Code:

function myFunction() { 
    function listFilesInFolder(foldername) { 
    ... 
    } 
} 

entfernen Sie die äußere Funktion decleration und seine passende Schließbügel. Der Code wird ausgeführt.

Es sollte wie folgt aussehen:

function listFilesInFolder(foldername) { 
... 
} 
0

dieses modifizierten Code in Tabelle Versuchen Sie stattdessen:

function myfunction(){ 
//Declaring the function listFolders to temp 
var temp = function listFolders(foldername) { 
    // If we have not been provided a foldername, assume we will interact with user. 
    var interactive = (typeof foldername === 'undefined'); 

    // Get name of folder to list 
    if (interactive) { 
    foldername = Browser.inputBox("List files in folder", "Enter folder name", Browser.Buttons.OK_CANCEL); 
    } 

    if (foldername === '') return; // No name provided, exit quietly 

    var folders = DriveApp.getFoldersByName(foldername); 
    if (!folders.hasNext()) { 
    if (interactive) Browser.msgBox("Folder not found."); 
    return; 
    } 
    var folder = folders.next(); 
    var contents = folder.getFiles(); 

    var file, data, sheet = SpreadsheetApp.getActiveSheet(); 
    sheet.clear(); 

    sheet.appendRow(["Name", "Date", "Size", "URL", /*"Download",*/ "Description", "Type"]); 

    // Loop over files in folder, using file iterator 
    while (contents.hasNext()) { 
    file = contents.next(); 

    if (file.getMimeType() == MimeType.GOOGLE_SHEETS) { // "SPREADSHEET" 
     // Skip displaying spreadsheets - I don't know why... 
     continue; 
    } 

    data = [ 
     file.getName(), 
     file.getDateCreated(), 
     file.getSize(), 
     file.getUrl(), 
     //"https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(), 
     file.getDescription(), 
     file.getMimeType() 
    ]; 

    sheet.appendRow(data); 

    } 
} 
// calls the function listFolders below 
temp() 
} 
+0

Ich nahm an, 'niceFileType()' war irgendwo im Code, aber guten Ruf, es zu beheben. –

+0

Danke, ich habe gerade die Antwort beendet, als du die Antwort gepostet hast. Sonst hätte Else es nicht gepostet, sondern Ihre Antwort modifiziert, um die Änderung zu berücksichtigen. . –

Verwandte Themen