我不敢相信没有一个简单的方法来做到这一点,但我到处寻找一个工作的解决方案,但没有成功。谷歌脚本测试文件存在
我在Google表单中运行Google脚本,我在代码中想要将电子表格保存为新文件名。在我这样做之前,我想检查是否已经有一个存在(因为我不想覆盖它)。
无论文件夹或文件是否存在,下面我用来测试的代码都会返回“File Exists”。
与往常一样,任何帮助非常感谢:-)
这里是我的测试代码。
function testscriptforfileexistance() {
filecheck = checkfileexists("UnderDevelopment",'20160919 Weekly Roster v1.0.gsheet');
if (filecheck.filefound = true) {
Browser.msgBox("file found") ;
} else {
Browser.msgBox("File not found");
}
}
function checkfileexists(foldername,fn) {
var destFolder = DriveApp.getFoldersByName(foldername);
filefound=false;
var destFileId = DriveApp.getFilesByName(fn);
//if hasnext returns false, presumably it doesn't exist
if (!destFileId.hasNext) {
Logger.log ("Found");
filefound = true;
// and as a second test, if the length is zero the file doesn't exist
if (!destFileId[0]) {
Logger.log ("zero length");
filefound=false;
}
}
return {filefound:filefound};
}
干杯 ......史蒂夫
发现问题。似乎除非文件具有除.gsheet之外的显式扩展名,否则getFilesByName会添加.gsheet的默认文件扩展名。因此,如果您已经在getFilesByName filename参数中指定了.gsheet,则会为其添加另一个.gsheet(将文件名的总扩展名扩展为.gsheet.gsheet)。将.gsheet扩展名关闭文件名(如果它是一个gsheet),然后与上面的代码一起使用。叹。 – SteveP