0

这似乎是非常基本的东西,但有人可以告诉我这个 [0] 的目的是什么;下面代码中的 ("myfile3") 之后呢?我从谷歌开发者页面得到它,但没有解释它的作用。我是 GAS 和 Javascript 的新手,没有很多编程经验,但我想做的就是从 Google 驱动器的根驱动器复制一个文件,然后将其移动到另一个文件夹。然后下面的代码有时可以工作,但过了一会儿我收到一条错误消息,告诉我:“必须先将文件 copyFile 转换为 Google 文档。(第 5 行,文件“复制”)”。

任何帮助表示赞赏。(对不起,如果这是一个愚蠢的问题)

代码是:

函数复制文件(){

 var file = DocsList.find("myfile3")[0];
 var copy = file.makeCopy("myfile5"); 

} 
4

2 回答 2

0

来自文档: find(query) :返回容器中包含给定字符串 的所有文件的数组。

Find()搜索所有文件的内容,而不是它们的名称。

这意味着您必须选择要打开的数组的哪个元素......使用[0]意味着您获取第一个结果。它可能是您要查找的文件,但完全不确定...

要将搜索范围缩小到文件名,您应该在测试每个文件的名称时简单地迭代返回的数组并选择您想要的。它可能在这样的 for 循环中:

var files = DocsList.find("myfile3");
  for(var f=0;f<files.length;++f){if(files[f].getName()==query){var foundDocId=file[f].getId() ;  break}

从那里使用文件 ID 访问您的文件,因为这个文件是唯一的(名称不在 Google 文档中)。

就如此容易 ;-)

于 2013-06-17T19:30:48.860 回答
-1

出于两个隐含的原因,我建议测试此功能的 DriveApp 版本:

  1. DocsList 服务已弃用,并且可能会随着 DriveApp 功能的充实而停止。
  2. DriveApp 在文件类型方面更加不可知,并且可能会绕过您的错误。

查看Apps 脚本文档中的fileMakeCopy()了解详细信息。

于 2013-06-17T14:18:17.373 回答