在Google-App-Script for Google云端硬盘中如果标题包含某个字词,如何将某些文件从root移动到某个文件夹?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Google-App-Script for Google云端硬盘中如果标题包含某个字词,如何将某些文件从root移动到某个文件夹?相关的知识,希望对你有一定的参考价值。

如果标题包含某个单词,我想使用Google-App-Script将某些文件移动到特定文件夹中

我尝试过类似的东西,但错误消息表明该方法未定义。任何指针/建议?

这是我的代码:

function myFunction() {
    var searchFor ='title contains "Copyright"';
    var names =[];
    var files = DriveApp.searchFiles(searchFor);
    var destination = DriveApp.getFolderById("1xN0AUclE2t9yqlNzTwgRup3nn7G0Qsik");
    while (files.hasNext()) {
        files.next().destination.addFile(file);
}

}

答案

看起来您没有在代码中的任何位置定义“文件”变量。

您可以在while循环中定义它,也可以将files.next()作为参数传递给addFile()。

最后,您应该从第7行的开头删除files.next(),因为此链接不正确并且可能导致您的错误!

另请注意,该文件不会从其原始文件夹中删除,但可以从两个位置访问。如果您希望从原始位置删除该文件,请告诉我,我将编辑我的代码以添加此文件。

试试这个:

function myFunction() {
  var searchFor ='title contains "Copyright"';
  var names =[];
  var files = DriveApp.searchFiles(searchFor);
  var destination = DriveApp.getFolderById("1xN0AUclE2t9yqlNzTwgRup3nn7G0Qsik");
  while (files.hasNext()) {
    var file = files.next();
    destination.addFile(file);
  }
}

或这个:

function myFunction() {
  var searchFor ='title contains "Copyright"';
  var names =[];
  var files = DriveApp.searchFiles(searchFor);
  var destination = DriveApp.getFolderById("1xN0AUclE2t9yqlNzTwgRup3nn7G0Qsik");
  while (files.hasNext()) {
    destination.addFile(files.next());
  }
}
另一答案

请注意,您的代码不会按照您的说法执行操作。也就是说,它实际上并没有将文件从根文件夹“移动”到指定的文件夹(如果这是你想要完成的)。

在Google云端硬盘中,文件夹和文件可以包含多个父级。将文件夹视为应用于文件和其他文件夹的“标签”。调用Folder类的addFile(file)方法会将文件添加到新文件夹,但同一文件也将保留在其原始父文件夹中。

这可能会导致问题,因为您可能会意外地从其中一个文件夹中删除文件,认为它是副本,而实际上它是存储在多个文件夹中的同一文件。

由于没有直接的方法将文件“移动”到Google云端硬盘中的另一个文件夹,因此实际过程包含两个步骤。

获取文件的父文件夹列表:

var folderIterator = file.getParents();   

将文件添加到目标文件夹并将其从以前保存的父文件夹中删除

targetFolder.addFile(file);

//Remove from parents
while (folderIterator.hasNext()) {    
 folderIterator.next().removeFile(file);  
}

以上是关于在Google-App-Script for Google云端硬盘中如果标题包含某个字词,如何将某些文件从root移动到某个文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

如何在go中使用带有for循环的列表

go语言学习笔记 — 基础 — 控制流:for循环语句

go语言-for循环

ODBC database driver for Go:Go语言通过ODBC 访问SQL server

GO 使用由 for 循环创建的通道

markdown Go For Go #golang