Google App脚本删除云端硬盘中的所有文件

时间:2018-04-10 17:23:43

标签: google-apps-script

早上好,我在创建谷歌应用脚​​本时遇到了一些问题,从Google云端硬盘的根目录中删除所有文件/文件夹。我找到了以下代码,但在运行时似乎出错;

function deleteFile(idToDLET) {
  idToDLET = 'the File ID';

  //This deletes a file without needing to move it to the trash
  var rtrnFromDLET = Drive.Files.remove(idToDLET);
}

错误代码=未找到脚本功能; myFunction

谢谢

2 个答案:

答案 0 :(得分:0)

正如@James D所说,你错过了myFunction,这是默认函数,以便运行脚本。确保先保存脚本。

以下是获取所有文件并删除它们的代码。

function myFunction() {
  // Get all files in Drive
  var files = DriveApp.getFiles();

  // Delete every file
  while (files.hasNext()) {
    var file = files.next();
    Logger.log('Deleting file "%s"',
                 file.getName());
    // Delete File
    Drive.Files.remove(file.getId())
  }
}

要使用DriveAPI,您需要通过资源>高级Google服务菜单添加它。将Drive API设置为开启 AND 确保您的Google Developers Console中已启用Drive API。如果它未在 BOTH 位置启用,则无法使用。

Enable Drive API

警告

应用脚本存储为Google云端硬盘中的文件......

此脚本在运行时将删除已连接的Google云端硬盘帐户中的所有文件,包括其自身。

希望这有帮助!

答案 1 :(得分:0)

由于@CTOverton的回答,我创建了另一个版本,因为我注意到File具有setTrashed方法,该方法将文件移至垃圾箱。

如果云端硬盘已保存了重要文件,建议您将文件移至垃圾桶,而不要进行永久删除,这样可以在进行脚本实验时避免灾难:-)

此版本使用的文件夹ID是folder.getId()

您可以使用CTOverton的代码删除云端硬盘上的所有文件(注释)。

function emptyFolder(folderId) {

    const folder = DriveApp.getFolderById(folderId);
  
    while (folder.getFiles().hasNext()) {
      const file = folder.getFiles().next();
      Logger.log('Moving file to trash: ', file);
      file.setTrashed(true);
      // Delete File
      //Drive.Files.remove(file.getId())
  }

}

欢呼