0

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

我该怎么做?添加它会算作更改,所以它的第二次编辑?

我在看onedit(),但我不明白如何使用它,我不知道如何使它适用于任何/所有文档(可以检查一个文件夹中的所有文件,但这就是我使用谷歌的全部内容Drive for,因此任何文件夹也可以使用)。

4

2 回答 2

1

蛮力方法是创建一个函数,该函数迭代比较创建日期时间与上次编辑日期时间的文件。这可以通过文件类getDateCreated()的和getLastUpdated()方法获得。如果您有大量文件,请阅读有关文件数量限制和处理分页请求的信息。您的函数可以使用执行 GAS 脚本的任何正常方式运行。一旦您的功能正常工作,手动创建时间驱动触发器将根据您的需要自动运行它。

在 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)
于 2013-03-16T01:19:36.783 回答
0

我想您是在谈论文本文档,而不是电子表格(?)。OnEdit 适用于电子表格,因此不适用于您的用例。此外,没有办法将脚本绑定到文本文档......我能想象的唯一可能的方法是拥有一个独立的脚本来监视文档活动并尝试检测是否已创建新文档并最终正在编辑,但我什至不知道该怎么做。

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

如果时间不是很关键,也许您可​​以想象一个计时器触发的监视脚本,它检查您的驱动器并将与某些特定条件相对应的文件移动到另一个文件夹......

如果您想要更好的建议,恐怕您必须提供有关这些文件在此过程中发生的情况的更多详细信息。(对不起这个相当“模糊”的回应)

于 2013-03-15T22:03:32.220 回答