在谷歌驱动器上,文件夹存在总是返回false

use*_*568 2 directory boolean function google-apps-script google-drive-api

我正在使用谷歌应用程序脚本在谷歌驱动器上创建一个文件夹.我不想在驱动器上有任何重复,所以我创建了一个函数来查明该文件夹是否存在.

我将所有文件夹名称放入一个数组,然后查看该数组中是否存在文件夹名称.虽然......总是返回false

你能看到我在哪里出错吗?或者是否有更好的方法来查明驱动器上是否存在文件夹?

function doesContainerExist(container) {
  var folders = DriveApp.getFolders();
  var Folders = new Array;
  var boolean;

  while(folders.hasNext()) {
    Folders.push(folders.next());
  }

  if(Folders.indexOf(container) == -1) {
    boolean = false;
  } else {
    boolean = true;
  }
  Logger.log(container);

  return boolean;

};
Run Code Online (Sandbox Code Playgroud)

Ser*_*sas 7

还有另一种有效的方法来检查文件夹是否已经存在,下面是带有测试功能的代码供您尝试:

function testTest(){
  Logger.log(testFolder('Photos'));// returns true if folder exists, false if it doesn't
}

function testFolder(folderName){
  var exist = true;
  try{var testFolder = DocsList.getFolder(folderName)}
  catch(err){exist=false}
  return exist;
}
Run Code Online (Sandbox Code Playgroud)

由于您的最终目的是创建一个文件夹,您可以直接在脚本的"catch"部分创建它,或者只是将try/catch集成到您用来创建文件夹的现有代码中.