Google Apps脚本返回云端硬盘中的所有文件,而不是文件夹中的文件

时间:2019-10-03 22:18:10

标签: google-apps-script

我在Google云端硬盘中有一个文件夹,其中有一些文件。我想检索所有这些文件信息,仅此而已。其他文件夹中还有许多其他文件,但我不需要它们。但是,我的以下代码显示了所有文件的名称。如何将结果仅限制为指定文件夹中的文件?

3306

目前,此文件夹中只有4个文件,但日志显示了我的Google云端硬盘中的整个文件名。我不知道自己在做什么错,因为我指定的ID是文件夹。它如何返回Google云端硬盘中的每个文件?

1 个答案:

答案 0 :(得分:2)

答案:

您的代码已经很好用了!

其他信息:

Google Apps脚本不允许运行全局代码,因为需要声明和运行特定功能,至少与本地运行的代码不同。全局变量是静态的,不能在运行时更改。

您可以做的事情:

正如Cooper在他们的评论中提到的那样-您所需要做的就是将代码放入函数中,调用该函数并进行设置。该代码很好用:

function functionName(){
  var myFolderId = "XXXXXXXXXXXXXXXXXXXXXXXXX";
  var files = DriveApp.getFolderById(myFolderId).getFiles();
  while(files.hasNext())
  { 
    var file = files.next();
    Logger.log(file.getName());
  }
}

作为旁注:如果您确实想要使用全局范围(或​​至少使用它的模拟),尽管您可以使用PropertiesService仍然必须在函数中设置它们并运行函数以检索它们:

function setVars(){
  PropertiesService.getScriptProperties().setProperty('myFolderId', 'XXXXXXXXXXXXXXXXXXXXXXXXX');
}
function listFiles(){
 var files = DriveApp.getFolderById(PropertiesService.getScriptProperties().getProperty('myFolderId')).getFiles();
 //continue this code
}