DriveApp.GetFoldersByName()始终返回true [英] DriveApp.GetFoldersByName() always returning 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屋!