Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script Google应用程序脚本删除驱动器中的所有文件_Google Apps Script - Fatal编程技术网

Google apps script Google应用程序脚本删除驱动器中的所有文件

Google apps script Google应用程序脚本删除驱动器中的所有文件,google-apps-script,Google Apps Script,早上好,我在创建google应用程序脚本以从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应用程序脚本以从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);
}
错误代码=未找到脚本函数;我的功能


正如@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,您需要通过资源>高级谷歌服务菜单添加它。将驱动器API设置为打开时的确保在Google开发者控制台中打开了驱动器API。如果在两个位置都未启用,则它将不可用

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

此脚本在运行时将删除连接的google drive帐户中的所有文件,包括其自身


希望这有帮助

多亏了@CTOverton answer,我创建了另一个版本,因为我注意到一个文件有setTrashed方法,它将文件移动到垃圾箱中

如果驱动器保存了重要文件,我建议将文件移动到垃圾箱,而不是永久删除,这样做可能会使您在执行脚本编写实验时免于灾难:-)

此版本使用一个文件夹id,您可以使用它来获取:
folder.getId()

您可以使用CTOverton的代码删除驱动器上的所有文件(注释)

函数清空文件夹(folderId){
const folder=DriveApp.getFolderById(folderId);
while(folder.getFiles().hasNext()){
const file=folder.getFiles().next();
Logger.log('将文件移动到垃圾箱:',文件);
file.setTrashed(true);
//删除文件
//Drive.Files.remove(file.getId())
}
}

干杯

您还没有保存脚本。myFunction是打开新脚本文件时的默认函数。如果你不得不问这个问题,我有一种感觉,这将是你的最小问题!我不是程序员,我只是想让人力资源部门的工作更轻松,作为一名技术支持人员,谢谢你;)这就像
sudo rm-rf*/*
…谢谢,脚本现在在第18行“驱动器未定义”中出错。我已验证驱动器API是否已激活,是否缺少其他内容?Thanks@APineapple您必须启用驱动器API。我编辑了答案以解释如何执行此操作,并简化了代码。您可能应该使用。我尝试了此操作,结果显示
此文件的权限不足(第11行,文件“code”)
@James我相信这是因为它试图删除自身。应用程序脚本也存储在google drive中。尝试添加一个if语句来检查以确保它不是代码本身。例如:
if!(file.getName()=“Code”){Drive.Files.remove(file.getId())}