我正在尝试修改以下脚本: https://github.com/ahochsteger/gmail2gdrive
我需要脚本来检查该文件是否已经存在于Google云端硬盘中,如果不存在,请创建它。目前,该脚本仅将文件创建到Google云端硬盘中,而无需检查是否存在同名的现有文件。
我不是程序员,我对Google App Script一无所知(尽管我设法进行了设置并使其运行),对JavaScript一无所知。我只是想知道是否有人可以向我指出正确的方向或帮助我编写我需要的这一功能?
据我了解(可能是错误的),附件是根据代码中的这一行创建的:
var file = folder.createFile(attachment);
所以我尝试在createFile之前添加它:
var file = folder.removeFile(attachment);
我的逻辑是,如果文件存在于文件夹中,则在创建文件之前先将其删除(因此避免重复文件)。但这没用。
答案 0 :(得分:1)
从问题中的GitHub脚本中发现attachment
是blob。那么如何使用该文件名呢?我认为针对您的情况有几种解决方案。因此,请将此视为其中之一。示例脚本的流程如下。
getFilesByName()
检索FileIterator。示例脚本如下。
如果只想在不存在相同文件名的文件时创建新文件,则可以使用以下脚本。
var fileName = attachment.getName();
var f = folder.getFilesByName(fileName);
var file = f.hasNext() ? f.next() : folder.createFile(attachment);
如果要在存在相同文件名的文件时执行某些操作,则可以使用以下脚本。
var fileName = attachment.getName();
var f = folder.getFilesByName(fileName);
var file;
if (f.hasNext()) {
// If the file has already been existing, you can do something here.
} else {
// If the file is not existing, you can do something here.
file = folder.createFile(attachment);
}
如果这不是您想要的,请告诉我。我想修改它。