删除文件夹Google脚本中除x个最重新发送的文件以外的所有文件

时间:2018-03-10 02:50:00

标签: javascript google-apps-script google-sheets

我有一个存储备份文件的文件夹,我想只保留5个最新文件

所有文件都位于名为New Project Backups

的文件夹中

所有文件都有New Project作为其名称的一部分

我在这里找到了这个 Delete old files

如何将功能集中在仅查看文件夹New Project Backups

由于

function myFunction() {
  var file_iterator = DriveApp.getFiles();

  var file_list = [];
  while (file_iterator.hasNext()) {
    var fl = file_iterator.next();
    if (fl.getName().match("New Project"))
      file_list.push(fl); 
  }

  // Sort the files on date created
  file_list = file_list.sort(function(fl1, fl2) {
    return fl1.getDateCreated() < fl2.getDateCreated();
  });

  // Removing uneeded file
  while (file_list.length > 5) {
    var fl = file_list.pop();
    // fl.setTrashed(true); // if you want it in the trash
                        // instead of fully removed.
    DriveApp.removeFile(fl);
 }
 } 

1 个答案:

答案 0 :(得分:2)

使用DriveApp.getFiles()将获取驱动器中的所有文件。你可以通过替换

来解决这个问题
  var file_iterator = DriveApp.getFiles();

  id = "0XrUxpDX-E8dpeE9EQmpYLeplOLB";
  var folders = DriveApp.getFolderById(id);
  var file_iterator = folders.getFiles();

id是您要使用的文件夹ID,您可以从文件夹网址中找到它

实施例, 文件夹网址:https://drive.google.com/drive/u/1/folders/0XrUxpDX-E8dpeE9EQmpYLeplOLB 文件夹ID:0XrUxpDX-E8dpeE9EQmpYLeplOLB

享受;)