Google Apps脚本 - getBlob()。isGoogleType()为Google文档返回false

时间:2016-09-23 19:27:40

标签: google-apps-script

我需要在我的脚本中确定文件是否是Google类型,我似乎无法弄清楚为什么这不起作用。这是代码片段:

function transferFiles() {
var files = DriveApp.getFiles();
while (files.hasNext()) {
    var file = files.next();
    if (file.getBlob().isGoogleType()) {
         do stuff
    }
}

}

对于我的所有Google文件(文档,电子表格等),if语句都返回false。当我要求它返回file.getBlob()。getContentType()时,似乎所有内容都转换为application / pdf。

我在这段代码中做错了什么,或者是否有另一种方法可以确定某个文件是否属于Google类型?感谢。

2 个答案:

答案 0 :(得分:1)

一些解决方法建议:

function transferFiles() {
  var files = DriveApp.getFiles();
  var googleMimeTypes = [MimeType.GOOGLE_APPS_SCRIPT, 
                         MimeType.GOOGLE_DOCS,
                         MimeType.GOOGLE_DRAWINGS,
                         MimeType.GOOGLE_FORMS,
                         MimeType.GOOGLE_SHEETS,
                         MimeType.GOOGLE_SLIDES];
  while (files.hasNext()) {
    var file = files.next();
    if(googleMimeTypes.indexOf(file.getMimeType()) != -1){
      Logger.log(file.getName() + " is Google Type!");
    } else{
      Logger.log(file.getName() + " is not Google Type!");
    }
  }
}

答案 1 :(得分:0)

这是另一个建议。所有Google原生格式在您的云端硬盘中占用0个字节。您可以比较循环内的文件大小,以确定文件是否为本机Google类型。

function transferFiles() {
  var files = DriveApp.getFiles();
  while (files.hasNext()) {
    var file = files.next();
    if (file.getSize() == 0) {
      // do something
    }
  }
}