Google 应用程序脚本删除云端硬盘中的所有文件

问题描述 投票:0回答:3

早上好,我在创建谷歌应用程序脚本以从 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);
}

错误代码 = 未找到脚本函数;我的函数

谢谢

google-apps-script
3个回答
3
投票

感谢@CTOverton 的回答,我创建了另一个版本,因为我注意到文件具有 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())
  }

}

干杯


2
投票

正如 @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 设置为ON并且确保您的 Google Developers Console 中已启用 Drive API。如果在BOTH地方没有打开,它将不可用。

警告

应用程序脚本作为文件存储在 Google Drive 中...

此脚本运行后将删除连接的谷歌驱动器帐户中的所有文件,包括其本身。

希望这有帮助!


0
投票

删除文件夹中输入文件夹id的所有文件!

function deleteAllFile() {
  // Get all files in Drive
  const idFolder = 'id'
  var files = DriveApp.getFolderById(idFolder).getFiles();

  // Delete every file
  while (files.hasNext()) {
    var file = files.next();
    Logger.log('Deleting file "%s"',
                 file.getName());
    // Delete File
    DriveApp.getFolderById(idFolder).getFilesByName(file.getName()).next().setTrashed(true)
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.