Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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 Apps Script_Google Sheets_Google Drive Api - Fatal编程技术网

Google apps script 如何通过基于';未知';应用程序脚本的标准?

Google apps script 如何通过基于';未知';应用程序脚本的标准?,google-apps-script,google-sheets,google-drive-api,Google Apps Script,Google Sheets,Google Drive Api,我想使用GAS从谷歌硬盘检索文件列表。 因此,我需要基于空所有者的文件列表。 对于我们在共享驱动器上创建的文件,所有者不存在。 如果我们试图强制使用所有者名称,它将得到一个错误 例如: file.getOwner().getName(); 无法从文件列表中检索该文件。 我尝试添加一个基于空所有者的过滤器,我想说未知 function getfilesUnknown () { var ss = SpreadsheetApp.getActiveSpreadsheet (); var st

我想使用GAS谷歌硬盘检索文件列表。 因此,我需要基于空所有者的文件列表。 对于我们在共享驱动器上创建的文件,所有者不存在。 如果我们试图强制使用所有者名称,它将得到一个错误

例如:

file.getOwner().getName();
无法从文件列表中检索该文件。 我尝试添加一个基于空所有者的过滤器,我想说未知

function getfilesUnknown () {
  var ss = SpreadsheetApp.getActiveSpreadsheet ();
  var st = ss.getActiveSheet ();
  var files = DriveApp.getFiles ();
  var counter = 0;
  while (files.hasNext () && counter <21) {
    var file = files.next ();
    var data = [
      file.getName (),
      file.getUrl (),
      file.getOwner ()? file.getOwner (). getName (): 'Unknown'
    ];
    var filter = data.filter (v => v [2] === 'Unknown');
    counter ++;
    st.appendRow (filter);
  }
}
函数getFileUnknown(){ var ss=SpreadsheetApp.getActiveSpreadsheet(); var st=ss.getActiveSheet(); var files=DriveApp.getFiles(); var计数器=0; while(files.hasNext()&&counter v[2]='Unknown'); 计数器++; 圣佩德罗(过滤器); } } 但无法检索文件列表

似乎不建议使用while中的过滤器。
或者,这里的人们有另一种解决方案。

我不确定这是否是最好的方法

但是,由于当所有者不存在时,您在这里得到一个错误
file.getOwner().getName()
,因此请尝试使用来捕获错误

也就是说,如果出现错误,请传递未知的文件名,否则请传递文件所有者的名称

function getfilesUnknown() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var st = ss.getActiveSheet();
  var files = DriveApp.getFiles();
  var counter = 0;
  var data = [];
  while (files.hasNext() && counter<21) {
    var file = files.next();
    
    try{
      data.push([file.getOwner().getName()]);
    }
    catch(e){
      data.push(['Unknown']);
    }             
    counter++; 
  }
  
  st.getRange(st.getLastRow()+1,1,data.length,1).setValues(data);
}
函数getfilesnown(){ var ss=SpreadsheetApp.getActiveSpreadsheet(); var st=ss.getActiveSheet(); var files=DriveApp.getFiles(); var计数器=0; var数据=[]; while(files.hasNext()&&counter)