Google 脚本应用程序列出表格中的驱动器文件夹

Google Script App list drive folder in Sheets

我正在尝试复制到步骤 https://ctrlq.org/code/19854-list-files-in-google-drive-folder

它成功地为 sheet 中的列创建了 headers,但没有 get/print 行中的任何数据。我哪里错了?

这是我的:

/* Code written by @hubgit 
   https://gist.github.com/hubgit/3755293
   Updated since DocsList is deprecated 
*/

function listFilesInFolder(folderName) {

  var folder = DriveApp.getFoldersByName(folderName).next();
  var contents = folder.getFiles();

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

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

  for (var i = 0; i < contents.length; i++) {

    file = contents[i];

    if (file.getFileType() == "SPREADSHEET") {
      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.getFileType().toString()
    ];

    sheet.appendRow(data);

  }

};

如果您在其中硬编码文件夹 ID,则以下内容有效。

还有.

function listFilesInFolder(folderName) {

   var sheet = SpreadsheetApp.getActiveSheet();
   sheet.appendRow(["Name", "Date", "Size", "URL", "Download", "Description", "Type"]);

    var folder = DriveApp.getFolderById("PUT_YOUR_FOLDERID_IN_HERE");
    //Logger.log(folder);
    var contents = folder.getFiles();

    var cnt = 0;
    var file;

    while (contents.hasNext()) {
        var file = contents.next();
        cnt++;

        Logger.log(file);
        Logger.log(cnt);

            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);



    };
};

您需要根据需要定制代码。首先在 ListFilesInFolder(folderName) 中没有任何通过,所以删除 folderName 部分。然后尝试使用特定的文件夹名称。接下来,如果我们不想局限于电子表格。我们需要删除行:

if (file.getFileType() == "SPREADSHEET") {
      continue;
    } 

有,其实不需要一个for loop contents.hasNext()就够了。所以这个功能最终会是这样的。正在运行。

function listFilesInFolder() {

  var folder = DriveApp.getFoldersByName('SRL').next();
  Logger.log(folder);
  var contents = folder.getFiles();
  Logger.log(contents);

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

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


    if (contents.hasNext()) {

      file = contents.next();

      Logger.log(file);

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

    ];

    sheet.appendRow(data);


 }

};