【问题标题】:in google-apps-script is there a way to get to know if a google drive's folder is empty?在 google-apps-script 中有没有办法知道谷歌驱动器的文件夹是否为空?
【发布时间】:2013-01-29 10:04:10
【问题描述】:

我想编写一个谷歌应用程序脚本将每个空文件夹丢弃到我的谷歌驱动器中,我应该使用哪个方法/属性来检查当前文件夹(我可以写一个循环)真的是空的,id est 没有任何文件还是里面的任何其他嵌套文件夹?

而且,如果你删除了一个链接了一些文件的文件夹,会发生什么?这些文件是否会被丢弃或成为孤立文件(当然,如果仅链接到文件夹)?

谢谢。

——亲切,

tiziano solignani, da  Mac http://blog.solignani.it

这是我在第一个有用的答案之后编码的,我只是插入了分页:

function FindEmptyFolders() {

var pageSize = 200;
var folders = null;
var token = null;
var i = null;

Logger.clear()

do {
var result = DocsList.getAllFoldersForPaging(pageSize, token);
folders = result.getFolders();
token = result.getToken();
  for (var i = 0; i < folders.length; i++) {
      for(n=0;n<folders.length;++n){
        if(folders[n].getFiles().length==0 && folders[n].getFolders().length==0){
            folders[n].setTrashed(true)
            Logger.log(folders[n].getName())
            Logger.log(folders[n].getUrl())
        }
      }    
  } 
 } while (folders.length == pageSize);

  MailApp.sendEmail('solignani@solignani.it', 'Script eliminazione folders vuoti Log', Logger.getLog());

} 

【问题讨论】:

  • 不错的发展:-) 我会把它放在我的脚本集合中...
  • 谢谢。这会引发错误,但是,当获取您不欠的文件时,我必须插入一个 if 语句,提前检查所有权。

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


【解决方案1】:

这段代码完成了这项工作

function testForEmptyFolders() {
var folders = DocsList.getAllFolders()
  for(n=0;n<folders.length;++n){
    if(folders[n].getFiles().length==0 && folders[n].getFolders().length==0){
     folders[n].setTrashed(true)
     Logger.log(folders[n].getName())
     }
   }
}

记录器显示已删除文件夹的名称

【讨论】:

  • 谢谢。我要尽快试试。我只是想知道当没有文件但有一个嵌套文件夹时会发生什么,可能里面有一个文件。我只是不想丢失这些数据。任何的想法?再次感谢...
  • 脚本也会处理这个问题...看看有两个部分的条件:没有文件 && 没有文件夹
  • 对不起,我没有注意到第二部分。谢谢你,我会试一试。再次感谢。
  • PS 我想我将不得不使用分页,因为我有很多文件。
猜你喜欢
  • 2023-01-20
  • 2021-10-31
  • 2018-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-02
  • 2019-07-12
  • 2019-05-14
相关资源
最近更新 更多