DriveApp.GetFoldersByName()始终返回true [英] DriveApp.GetFoldersByName() always returning true

查看:52
本文介绍了DriveApp.GetFoldersByName()始终返回true的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在玩Google Drive脚本.

I've been playing around with google drive scripts.

我需要从电子表格创建一个文件夹,以防不存在具有该名称的文件夹.

I need to create a folder from a spreadsheet in case a folder with that name doesn't exist.

问题是,它说该文件夹存在,即使它不存在.

The problem though, is that it says the folder exists even if it doesn't.

该检查位于try函数内部.

喜欢这个:

try {
   //currentName is the name of the folder and it's working properly
   var folder = DriveApp.getFoldersByName(currentName);
   Logger.log('That folder already exists!')
} catch(err) {
   var folder = DriveApp.createFolder(currentName);
   Logger.log('Folder created because it didnt exist');
}

为什么即使它不存在也总是找到一个文件夹?

Any reason why it always finds a folder even if it doesn't exist ?

在我的硬盘上运行正常.但是后来我将其放置在具有很多文件夹的服务器驱动器中.这是权限问题吗?还是我没有检索服务器中的当前文件夹?

It worked fine on top of my drive. But then I placed it inside a server drive that has a lot of folders. Is it a permissions problem? Or I'm not retrieving the current folders in the server?

我错过任何类型的支票吗?

Am I missing any type of checks?

推荐答案

找出问题所在.

DriveApp.getFoldersByName返回一个FolderIterator,因此在此之后我必须做一个额外的测试.像这样:

DriveApp.getFoldersByName returns a FolderIterator, so I must do an extra test after that.. Like this :

var folder = DriveApp.getFoldersByName(currentClient);
if(folder.hasNext()) {
    Logger.log('File already exists')
} else {
    var folder = DriveApp.createFolder(currentClient);
    Logger.log('New folder created!');
}

像这样完美地工作.

这篇关于DriveApp.GetFoldersByName()始终返回true的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆