File 如何最好地删除文件夹及其子文件夹中的所有文件

File 如何最好地删除文件夹及其子文件夹中的所有文件,file,google-apps-script,File,Google Apps Script,你好。我正在尝试获取文件夹和子文件夹中的所有文件并将其删除,但代码不起作用,它只通过第一个子文件夹,其中没有文件,脚本结束,请帮助 function DeleteInvoices() { var folder = DriveApp.getFolderById("1-2VAPBzEQxCaoN7KGSB_K_peiLIDk32e"); var fl = folder.getFolders(); while (fl.hasNext()) { var files = fl.

你好。我正在尝试获取文件夹和子文件夹中的所有文件并将其删除,但代码不起作用,它只通过第一个子文件夹,其中没有文件,脚本结束,请帮助

function DeleteInvoices() {
 var folder = DriveApp.getFolderById("1-2VAPBzEQxCaoN7KGSB_K_peiLIDk32e");
 var fl = folder.getFolders();
 while (fl.hasNext()) {
 var files = fl.next();
 Logger.log(files)
 var fs = files.getFiles();
 while (fs.hasNext()) {
 var fss = fs.next();
 fss.setTrashed(true)
  }
 }
} 

我相信你的目标如下

  • 您想删除
    1-2VAPBzEQxCaoN7KGSB_K_peilid32e
    文件夹中的所有文件。
    • 在这种情况下,您希望将文件删除到垃圾箱中
  • 1-2VAPBzEQxCaoN7KGSB_K_peilid32e
    的文件夹有子文件夹,您希望删除所有子文件夹中的所有文件夹
  • 您不想删除子文件夹
修改点:
  • 在您的脚本中,我认为可以检索
    1-2VAPBzEQxCaoN7KGSB_K_peilid32e
    文件夹下文件夹中的文件。
    • 例如,如果
      1-2VAPBzEQxCaoN7KGSB_K_peilid32e
      的文件夹有两个文件夹,并且这两个文件夹有一个文件和一个文件夹,每个文件夹中包括一个文件,则脚本将检索两个文件。因为脚本从
      1-2VAPBzEQxCaoN7KGSB_K_peilid32e
      文件夹下的文件夹中检索文件
  • 为了遍历
    1-2VAPBzEQxCaoN7KGSB_K_peilid32e
    中的所有子文件夹,需要使用递归循环扫描所有文件夹,包括
    1-2VAPBzEQxCaoN7KGSB_K_peilid32e
    中的子文件夹
当上述各点反映到脚本中时,它将变成如下所示

修改脚本:
  • 在此脚本中,所有子文件夹中的所有文件都将使用
    getAllFiles
    功能进行扫描,并删除这些文件。(它们被移动到垃圾箱。)
  • 已删除文件的文件名显示在控制台中
注:
  • 在此脚本中,请将其与启用V8运行时一起使用
  • 当文件数量较大时,首先检索文件ID,下一步,使用批处理请求删除文件可能比较合适
参考资料:

@谢谢您的回复。我很高兴你的问题解决了。
function DeleteInvoices() {
  const getAllFiles = folder => {
    const files = folder.getFiles();
    while (files.hasNext()) {
      const file = files.next();
      console.log(file.getName());
      file.setTrashed(true);
    }
    const folders = folder.getFolders();
    while (folders.hasNext()) getAllFiles(folders.next());
  }

  var folder = DriveApp.getFolderById("1-2VAPBzEQxCaoN7KGSB_K_peiLIDk32e");
  getAllFiles(folder);
}