【问题标题】:How to sort files according to date created with google apps script?如何根据使用谷歌应用程序脚本创建的日期对文件进行排序?
【发布时间】:2022-01-01 12:50:30
【问题描述】:

我希望按文件的创建或上次修改日期对文件夹中的文件进行排序。我正在使用以下代码在谷歌驱动器中加载文件夹的内容:

var folder = DriveApp.getFolderById(folderID);
var contents = folder.getFiles();
data = file.getId();
var image = DriveApp.getFileById(data);

我的理解是上面的contents 是一个包含驱动器中文件ID 列表的数组。是否可以在继续下一步之前按创建/修改日期对contents 进行排序?

【问题讨论】:

  • contents 不是一个数组,它是一个文件迭代器。可以使用 Array.from() 转换为任何数组。检查你最喜欢的 javascript 参考

标签: javascript google-apps-script google-drive-api


【解决方案1】:

按创建日期对文件数组进行排序

function myfunck() {
  var folder = DriveApp.getFolderById(folderID);
  var contents = folder.getFiles();
  let arr = [];
  while (contents.hasNext) {
    let file = contents.next();
    arr.push(file)
  }
  //sort arr by dateCreated
  arr.sort((a, b) => {
    let vA = new Date(a.getDateCreated()).valueOf();
    let vB = new Date(b.getDateCreated()).valueOf();
    return vA-vB
  });
 //the rest of your code makes no sense. 
}

【讨论】:

  • 感谢您的回答,据我了解,此代码是否根据创建日期将文件名分配给数组?如果是这样,我可以快速查看其内容吗?
  • 内容是什么?
  • contents 包含图像。我的完整代码是:
  • 其实这段代码只是根据creationDate对arr进行排序。您希望对排序数组执行什么操作取决于您。就显示图像而言,我可能会使用对话框来完成。
  • 我想使用排序数组的元素来打开图像,但没有运气。此外,我从代码中的 let file = contents.next(); 行收到错误:异常:无法检索下一个对象:迭代器已到达末尾。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多