如果您只是想删除一个文件夹,没什么特别的,您可以使用它。
var folderIteratorName = DriveApp.getRootFolder().getFoldersByName("Folder Name"); // folder iterator
folderIteratorName.next().setTrashed(true);
Run Code Online (Sandbox Code Playgroud)
背景信息如下。DriveApp getFolder 方法返回一个文件夹迭代器,其文档只提供了三个方法。其中没有提到的是,即使迭代器在本例中只有一项,您也必须调用 .next() 方法才能实际获取文件夹,然后您可以调用 setTrashed(true) 来删除它。
我两天都找不到这个简单问题的答案,直到我在一个与切线相关的问题中遇到了 ScampMichael 的一些代码。
function myFunction() {
var files = DriveApp.getFilesByName('data');
while (files.hasNext()) {
files.next().setTrashed(true);
}
}
Run Code Online (Sandbox Code Playgroud)
Folder 的文档将removeFolder(child) 列为一个选项,但没有明确如何实际调用它,因为文档中提供的任何DriveApp、Folder 或FolderIterator 类的示例很少。
DriveApp.removeFolder("folder name");
Run Code Online (Sandbox Code Playgroud)
也不起作用,因为removeFolder需要一个“子”。从概念上讲,大多数程序员都知道子项是什么,但文档中并未明确说明“子项”数据结构是什么或如何精确地为该方法指定它,也没有提供任何示例。
如果有人有更优雅的解决方案,请分享。我提出这个问题和答案主要是为了其他与我有类似问题的人找到这样他们至少有一种有效的方法。