首页 > 解决方案 > 检查父文件夹中是否存在具有特定名称的文件夹

问题描述

我想在父文件夹中创建一个新文件夹,但前提是它不存在。

我创建了一个函数来检查 parent_folder 中是否存在名为“folder_name”的文件夹。false如果 parent_folder 中没有带有“folder_name”的文件夹,我希望它返回,所以我稍后可以在 if 语句中使用。

function checkFolder(parent_folder, folder_name) {
  var folders_in_parent = parent_folder.getFolders();
  while (folders_in_parent.hasNext()) {
    var folder = folders_in_parent.next();
    if(folder_name == folder.getName()) {
      return true;
    }
  }
  return false;
}

请注意,参数“parent_folder”不是文件夹名称,而是我使用文件夹 ID 获得的文件夹本身:

var parentFolderID = "ID_goes_here";
var parentFolder = DriveApp.getFolderById(parentFolderID);

然后,我使用 checkFolder 函数检查新文件夹是否存在;如果没有,我创建它:

var newFoldercheck = checkFolder(parentFolder,"New Folder");
 
if (newFoldercheck === false) {
  var newFolder = campusFolder.createFolder("New Folder");
}

每次我运行我的脚本时,它总是会创建新文件夹,即使它已经存在于父文件夹中。拜托,你能帮我找出我做错了什么吗?

标签: javascriptgoogle-apps-scriptgoogle-drive-api

解决方案


我认为像这样进行比较可能会更好。我认为它使您有更好的机会找到看起来相似但不完全相同的匹配项。

function checkFolder(parent_folder, folder_name) {
  var folders_in_parent=parent_folder.getFolders();
  while (folders_in_parent.hasNext()) {
    var folder = folders_in_parent.next();
    if(folder_name.trim() == folder.getName().trim()) {
      return true;
    }
  }
  return false;
}

推荐阅读