使用Google Apps脚本从Google云端硬盘中删除文件

时间:2018-04-12 17:11:14

标签: google-apps-script google-drive-api delete-file

我已经看到很多话题都在谈论这个问题,我现在已经在努力了一个星期了:是否有一种真正的方法可以使用脚本删除/删除/放入Google云端硬盘中的垃圾文件?

我必须在云端硬盘上传CSV文件才能将其部分行复制到电子表格中,我希望在使用后删除这些文件。我使用了DriveApp.remove(file.id)Drive.Files.remove(file.id),即使他们在我的文档中没有做任何操作,我也没有收到任何错误消息......

我可以使用一个方法来获取文件名,参数中的fileID,以及执行此删除所需的任何内容。

1 个答案:

答案 0 :(得分:1)

根据Apps脚本文档,.removeFile(fileId)方法不会删除文件,也不会删除文件。此方法只是从当前文件夹中删除该文件。

要通过Apps脚本从Google云端硬盘删除文件,可能需要使用Drive REST API作为advanced service。这将跳过“垃圾箱” - 它是不可恢复的。

function deleteIt(fileId) {
  var file = Drive.Files.get(fileId);
  if(file.mimeType === MimeType.FOLDER) {
    // possibly ask for confirmation before deleting this folder
  }
  Drive.Files.remove(file.id); // "remove" in Apps Script client library, "delete" elsewhere
}

“垃圾”文件/文件夹可以通过Google Apps脚本完成,无需设置和配置高级服务:

function trashIt(fileId) {
  var file;
  try {
    file = DriveApp.getFileById(fileId);
  }
  catch (fileE) {
    try {
      file = DriveApp.getFolderById(fileId);
    }
    catch (folderE) {
      throw folderE;
    }
  }
  file.setTrashed(true);
}

(如果您需要使用Team Drive项目,也可以使用高级服务进行垃圾处理。)

见相关问题:
Permanently delete file from google drive
Delete or Trash specific file in Drive
Google apps script : How to Delete a File in Google Drive?