Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/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
Javascript 如何在谷歌应用程序脚本中按文件路径进行过滤_Javascript_Google Apps Script - Fatal编程技术网

Javascript 如何在谷歌应用程序脚本中按文件路径进行过滤

Javascript 如何在谷歌应用程序脚本中按文件路径进行过滤,javascript,google-apps-script,Javascript,Google Apps Script,我正在尝试按文件路径筛选以下脚本。理想情况下,这应该只显示我的驱动器中标记为“GUEST”的文件夹的结果。现在,它显示了这些以及其他具有此根目录的共享文件夹ID的内容(我不想使用来宾文件夹ID,因为我稍后将使用此ID筛选访问我的驱动器的其他用户) 我的google驱动器文件路径如下Root/GUEST 代码已根据注释中的答案更新: var folderId=“MyID”//0) { 返回“/”+[DriveApp.getFolderById(folderlist[i][j]).getName(

我正在尝试按文件路径筛选以下脚本。理想情况下,这应该只显示我的驱动器中标记为“GUEST”的文件夹的结果。现在,它显示了这些以及其他具有此根目录的共享文件夹ID的内容(我不想使用来宾文件夹ID,因为我稍后将使用此ID筛选访问我的驱动器的其他用户)

我的google驱动器文件路径如下
Root/GUEST

代码已根据注释中的答案更新:

var folderId=“MyID”//0) {
返回“/”+[DriveApp.getFolderById(folderlist[i][j]).getName(),用于(folderlist[i]中的j)
如果(j>0)]。连接(“/”+“/”;
}否则{
返回“/”;
}
}(folderlist,i),
file\u id:file.getId(),
文件名:file.getName(),
文件大小:file.getBlob().getBytes().length,
创建的文件:Utilities.formatDate(文件.getDateCreated(),localTimeZone,“yyyy/MM/dd HH:MM:ss”),
文件_updated:Utilities.formatDate(文件.getLastUpdate(),localTimeZone,“yyyy/MM/dd HH:MM:ss”),
};
文件列表。推送(临时);
温度={}
}
}
var sortedlist=filelist.sort(函数(e1,e2){
返回(e1.folder_tree>e2.folder_tree?1:-1)});
返回分类列表;
}
函数压缩(fileId){
var blobs=[];
var mimeInf=[];
forEach(函数(e){
试一试{
var file=DriveApp.getFileById(e);
var mime=file.getMimeType();
var name=file.getName();
}捕获(e){
返回e
}
Logger.log(mime)
var-blob;
if(mime.indexOf('google-apps')>0){
米梅因=
mime==“application/vnd.google apps.spreadsheet”?[“application/vnd.openxmlformats officedocument.spreadsheetml.sheet”,name+“.xlsx”]:mime==“application/vnd.google apps.document”?[“application/vnd.openxmlformats officedocument.wordprocessingml.document”,name+“.docx”]:mime==“application/vnd.google apps.presentation”[“application/vnd.openxmlformatsofcedocument.presentationml.presentation”,name+“.pptx”]:[“application/pdf”,name+“.pdf”];
blob=UrlFetchApp.fetch(“https://www.googleapis.com/drive/v3/files/“+e+”/export?mimeType=“+mimeInf[0]{
方法:“获取”,
标题:{“授权”:“承载者”+ScriptApp.getOAuthToken()},
muteHttpExceptions:true
}).getBlob().setName(mimeInf[1]);
}否则{
blob=UrlFetchApp.fetch(“https://www.googleapis.com/drive/v3/files/“+e+”?alt=媒体”{
方法:“获取”,
标题:{“授权”:“承载者”+ScriptApp.getOAuthToken()},
muteHttpExceptions:true
}).getBlob().setName(名称);
}
推(blob);
});
var zip=Utilities.zip(blob,Utilities.formatDate(new Date(),Session.getScriptTimeZone(),“yyyyMMdd_HHmmss”)+'.zip');
var bytedat=DriveApp.createFile(zip).getBlob().getBytes();
返回实用程序.base64Encode(bytedat);
}

函数postLogin(事件){
var form=document.getElementById(“myForm”);
表单提交();
event.preventDefault();
}
  • 您希望检索特定文件夹下的文件列表
  • 不需要检索特定文件夹中的子文件夹
  • 您希望使用谷歌应用程序脚本实现这一点
我可以像上面那样理解。如果我的理解是正确的,那么这次修改怎么样?我认为你的更新脚本可以工作。但是我认为你的脚本可以修改得更简单。那么下面的修改怎么样

修改点:
  • 在此修改中,修改了
    getFileList()
  • 在脚本中,首先检索文件夹树。然后检索所有文件夹中的文件。但在您的情况下,不需要检索文件夹树。这样,可以更简单地修改脚本
  • 首先,使用DriveApp.getFoldersByName(“来宾”).next().getFiles()检索“FileIterator”。然后,从“FileIterator”检索值
修改脚本: 参考资料:

什么是
标记为“GUEST”的文件夹
?它是根共享文件夹中包含一组文件的文件夹。感谢您的回复。关于
标记为“GUEST”的文件夹
,是
GUEST
文件夹名吗?好的,这里有一个临时链接:谢谢您的回复。我可以确认您的共享链接是文件夹名er name
GUEST
文件夹中有一个Google文档文件。您想在Google Drive中的
GUEST
文件夹中检索一个文件列表。如果我的理解正确,我有一个问题。您需要检查
GUEST
文件夹中的子文件夹吗?很好,这比我所拥有的要精确得多。谢谢s!@littlecoder感谢您的回复。我很高兴您的问题得到解决。
function getFileList() {
  var folderName = "GUEST";
  var files = DriveApp.getFoldersByName(folderName).next().getFiles();
  var localTimeZone = Session.getScriptTimeZone();
  var filelist = [];
  while (files.hasNext()) {
    var file = files.next();
    var temp = {
      file_id: file.getId(),
      file_name: file.getName(),
      file_size: file.getBlob().getBytes().length,
      file_created: Utilities.formatDate(file.getDateCreated(), localTimeZone, "yyyy/MM/dd HH:mm:ss"),
      file_updated: Utilities.formatDate(file.getLastUpdated(), localTimeZone, "yyyy/MM/dd HH:mm:ss"),
    };
    filelist.push(temp);
  }
  return filelist;
}