Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.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 在编辑时,使用Google Apps脚本将编辑的文档移动到其他文件夹_Javascript_Google Apps Script - Fatal编程技术网

Javascript 在编辑时,使用Google Apps脚本将编辑的文档移动到其他文件夹

Javascript 在编辑时,使用Google Apps脚本将编辑的文档移动到其他文件夹,javascript,google-apps-script,Javascript,Google Apps Script,我通过IFTTT配方制作文档,编辑后,我希望通过将其移动到不同的文件夹,能够将其与其他文档区分开来 我该怎么做?添加它是否算是一个更改,因此它的第二次编辑 我在看onedit(),但我不知道如何使用它,也不知道如何使它适用于任何/所有文档(可以检查一个文件夹中的所有文件,但这就是我使用Google Drive的全部目的,所以任何文件夹都可以工作)。我想你说的是文本文档,而不是电子表格(?)。OnEdit适用于电子表格,因此它不适用于您的用例。此外,无法将脚本绑定到文本文档。。。我能想象的唯一可能

我通过IFTTT配方制作文档,编辑后,我希望通过将其移动到不同的文件夹,能够将其与其他文档区分开来

我该怎么做?添加它是否算是一个更改,因此它的第二次编辑


我在看
onedit()
,但我不知道如何使用它,也不知道如何使它适用于任何/所有文档(可以检查一个文件夹中的所有文件,但这就是我使用Google Drive的全部目的,所以任何文件夹都可以工作)。

我想你说的是文本文档,而不是电子表格(?)。OnEdit适用于电子表格,因此它不适用于您的用例。此外,无法将脚本绑定到文本文档。。。我能想象的唯一可能的方法是使用一个独立的脚本来监视文档活动,并尝试检测新文档是否已创建并最终被编辑,但我甚至不知道如何做到这一点

当你说“在我编辑它之后”,是不是意味着你在IFTTT服务创建它之后手动编辑它?这是否发生在有限/限定的时间间隔内

如果计时不太关键,您可以想象一个计时器触发的监控脚本,它检查您的驱动器,并将符合某些特定条件的文件移动到另一个文件夹


如果你想得到更好的建议,恐怕你必须提供更多关于这些文件在处理过程中发生了什么的细节。(很抱歉这个“模糊”的回答)

蛮力方法是创建一个函数,通过比较创建日期时间和上次编辑日期时间来迭代文件。这可以通过的
getDateCreated()
getLastUpdated()
方法获得。如果您有大量文件,请阅读有关文件数量限制和处理分页请求的信息。您的函数可以使用以下任何一种方法运行。一旦你有了这个功能,手动创建一个时间驱动的触发器将自动运行它,频率如你所愿

在gDrive中,“文件夹”实际上是与文件关联的标记类型的显示约定。像gMail标签一样,dDrive文件夹可以嵌套,一个文件可以同时“在”多个文件夹中。下面是一个证明向文件夹中添加文件不会更改上次更新的日期/时间戳的小函数。“移动”文件在功能上与将其添加到一个文件夹并从另一个文件夹中删除文件相同

function FileEditTagTest() {
  var start = 1
  var max = 1
  var files = DocsList.getAllFiles(start, max)        //get array with one arbitrar file
  var id = files[0].getId()                           //get the file's ID
  var file = DocsList.getFileById(id)                 //get the file object
  Logger.log("Name:        " + file.getName())        //log the file's name
  Logger.log("LastUpdate:  " + file.getLastUpdated()) //log the file date-time before adding it to a new folder
  var folderName = 'TagTest' + new Date();            //generate a unique folder name. Current date is used for convenient uniquness
  var root = DocsList.getRootFolder()                 //get the root folder for the user
  var folder = root.createFolder(folderName)          //create a new folder
  file.addToFolder(folder)                            //assign the folder to the file (aka "put the file there")
  Logger.log("FolderName:  " + folderName)            //log the folder name
  Logger.log("LastUpdate:  " + file.getLastUpdated()) //log the file date-time after adding it to a new folder
}
运行此函数后,日志将类似于以下内容。请注意上次更新的两个条目是如何相同的

Name:        YourFileNameHere
LastUpdate:  Fri Mar 15 2013 15:32:42 GMT-0600 (CST)
FolderName:  TagTestFri Mar 15 2013 18:50:37 GMT-0600 (CST)
LastUpdate:  Fri Mar 15 2013 15:32:42 GMT-0600 (CST)

我很抱歉我也这么含糊,是的,它是文本文件,是的,如果它是手动制作的,我编辑它后,如果它制作(如果有任何意义),没有明确的时间尺度,但它总是在两周内。我喜欢标准的想法(尽管如果你/我们能够找出如何“监控理想的文档活动”),我可以为每个标准做一些重复的任务(简单的格式化工作,例如,此处有一个空格等),因此,如果你能检测到文本文档的价值,它就有这个。。。它会移动它。我只是不想太武断。