Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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/ruby-on-rails-3/4.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,我试图创建一种谷歌电子表格的方法,从谷歌硬盘本身识别某个文件名和/或类型的存在 如果文件存在,我希望在电子表格的框中显示一个“X” 我对gscript/javascript相当陌生,我已经尝试过了,但没有效果 我目前有这个,但是我不确定如何正确地将代码拼凑在一起: function CheckIfFileExists(name, mimeType){ var flag = false; var files = DriveApp.getFilesByType(mimeType); wh

我试图创建一种谷歌电子表格的方法,从谷歌硬盘本身识别某个文件名和/或类型的存在

如果文件存在,我希望在电子表格的框中显示一个“X”

我对gscript/javascript相当陌生,我已经尝试过了,但没有效果

我目前有这个,但是我不确定如何正确地将代码拼凑在一起:

function CheckIfFileExists(name, mimeType){
  var flag = false;
  var files = DriveApp.getFilesByType(mimeType);
  while (files.hasNext()) {
    var file = files.next();
     if(file.getName() == name) {
       flag = true;
         SpreadsheetApp.getActiveSheet().getRange('F2').setValue('Hello');
       break;
     }
  }
  return flag;
}
如果可以的话,我希望你能指出正确的方向


谢谢

使用三个等号进行比较:

if(file.getName() === name) {
您需要添加“或”条件检查,这在JavaScript中是通过双管道完成的

如果文件名始终相同,则无需传递值,只需硬编码值:

if(file.getName() === "A1" || file.getMimeType() === mimeType) {
请注意“硬编码”文件名“A1”。它用双引号引起来,成为一个“字符串”。(文本值)

如果每次都要向函数传递不同的文件名,则函数调用必须包含要传递的值:

函数调用:

//This causes the function to run, and passes two values to 
//the arguments specified in the arguments parameter.
CheckIfFileExists("A1", "application/vnd.google-apps.spreadsheet");

如果将值传递给函数,则不要在
If
语句中硬编码要检查的值。请留下
name
变量。

谢谢您的帮助,但是它仍然不会出现在Google表单中,我不知道为什么。我的驱动器中有一个名为“A1”的文件,在代码的两部分都将“name”重命名为“A1”(不带引号),并且该文件不会在单元格中被划掉。您需要调试代码。使用
Logger.log('name的值为:'+name)在代码中,然后从菜单中查看日志。(请参阅我答案中的更新)或设置断点,并使用调试器,逐步完成每一行代码。“name”是一个变量。如果在
checkifileexists(name,mimeType)
函数中没有向“name”参数传递任何值,则
name
的值未定义。将文件重命名为“name”将不匹配。“name”不等于
未定义的
。非常感谢,我现在有了日志,它说“name”的值未定义。如何定义值?对不起,我对这一点还不熟悉。我在回答的末尾添加了一些信息。
//This causes the function to run, and passes two values to 
//the arguments specified in the arguments parameter.
CheckIfFileExists("A1", "application/vnd.google-apps.spreadsheet");