如何使用Google Apps Script按创建或修改日期排序Google Drive文件?
实现Google Drive文件夹内文件按日期排序的方法
你当前代码中folder.getFiles()返回的不是文件ID数组,而是Google Apps Script专属的FileIterator文件迭代器,无法直接调用数组排序方法,需要先将迭代器转换为文件对象数组,再按日期字段排序即可,具体实现方式如下:
var folderID = "替换为你的目标文件夹ID"; var folder = DriveApp.getFolderById(folderID); var fileIterator = folder.getFiles(); // 将迭代器转为文件对象数组 var filesArray = []; while (fileIterator.hasNext()) { filesArray.push(fileIterator.next()); } // 按最后修改日期降序排序(最新修改的文件排在最前) filesArray.sort(function(a, b) { return b.getLastUpdated().getTime() - a.getLastUpdated().getTime(); }); // 如需按创建日期排序,替换为下方代码即可 // filesArray.sort(function(a, b) { // return b.getDateCreated().getTime() - a.getDateCreated().getTime(); // }); // 排序完成后遍历数组即可按顺序处理文件 for (var i = 0; i < filesArray.length; i++) { var currentFile = filesArray[i]; var fileId = currentFile.getId(); var image = DriveApp.getFileById(fileId); // 此处写入你的后续业务逻辑 }
- 若需要升序排序(更早生成/修改的文件排在最前),只需把sort回调函数中
a和b的位置互换即可 - 代码中调用
getTime()是为了将日期对象转为毫秒级时间戳数值,方便直接做大小比较
内容的提问来源于stack exchange,提问作者sp2
相关产品推荐
相关产品推荐

