我不敢相信沒有一個簡單的方法來做到這一點,但我到處尋找一個工作的解決方案,但沒有成功。谷歌腳本測試文件存在
我在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