我正在尝试遍历类代码列表,并检查特定Google驱动器文件夹中是否已存在具有该名称的文件。
我有它工作,但它很慢,我想我一定是错过了一个技巧。有107个唯一的类代码,我的代码分别执行,一次一个。我不知道是否有办法获取文件夹中所有文件的名称并检查它?
这是我的代码:
function ClassDataPacksProgress() {
var dateStamp=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "dd/MM/yyyy")
var ss=SpreadsheetApp.getActive();
var foldersave=DriveApp.getFolderById(folderkeygoeshere);
var fetch='https://docs.google.com/spreadsheets/d/'+mainSSKey+'/export?format=pdf&size=A4&portrait=false'
var classCodeSheet=ss.getSheetByName('ClassCodes')
var maxRowNum=classCodeSheet.getLastRow()+1;
var dataRange=classCodeSheet.getRange(1, 1, maxRowNum, 1);
var data=dataRange.getValues();
var count = 0
for (var r=0;r<data.length-1;r++){
var classCode = data[r][0]
var name=classCode + " " + dateStamp + ".pdf";
var filechk = DriveApp.getFilesByName(name);
var chk=filechk.hasNext();
if (chk === false) {
}
else {
var file = filechk.next()
if (file.getSize() > 3000){
count = count + 1
}
}
}
}
任何帮助都会很棒!
由于
答案 0 :(得分:1)
搜索所有带有日期戳的文件和&#34; pdf&#34;在标题中:
function ClassDataPacksProgress() {
//Your code at top
var allFiles,file;
allFiles = foldersave
.searchFiles('title contains "' + dateStamp + '" and title contains ".pdf"');
while (allFiles.hasNext()) {
file = files.next();
Logger.log(file.getName());
if (file.getSize() > 3000){
count = count + 1
}
}
}
不幸的是,目前无法按文件大小进行搜索。您目前的代码不是按文件夹搜索,而是搜索整个云端硬盘。