Google apps script 在GoogleDrive的Google应用程序脚本中,如果某些文件的标题包含某个单词,如何将其从根目录移动到某个文件夹?

Google apps script 在GoogleDrive的Google应用程序脚本中,如果某些文件的标题包含某个单词,如何将其从根目录移动到某个文件夹?,google-apps-script,google-drive-api,Google Apps Script,Google Drive Api,如果某些文件的标题包含某个单词,我想使用谷歌应用程序脚本将其移动到特定文件夹中 我尝试过类似的方法,但错误消息表明该方法未定义。有什么建议吗 这是我的代码: function myFunction() { var searchFor ='title contains "Copyright"'; var names =[]; var files = DriveApp.searchFiles(searchFor); var destination = DriveApp

如果某些文件的标题包含某个单词,我想使用谷歌应用程序脚本将其移动到特定文件夹中

我尝试过类似的方法,但错误消息表明该方法未定义。有什么建议吗

这是我的代码:

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);
}

}

看起来您没有在代码中的任何地方定义“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());
  }
}

看起来您没有在代码中的任何地方定义“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 Drive中,文件夹和文件可以有多个父级。将文件夹视为应用于文件和其他文件夹的“标签”。调用Folder类的addFile(file)方法将文件添加到新文件夹中,但该文件也将保留在其原始父文件夹中

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

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

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

var folderIterator = file.getParents();   
将文件添加到目标文件夹并将其从以前保存的父文件夹中删除

targetFolder.addFile(file);

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

请注意,您的代码并不像您所说的那样。也就是说,它实际上不会将文件从根文件夹“移动”到指定的文件夹(如果您希望这样做的话)

在Google Drive中,文件夹和文件可以有多个父级。将文件夹视为应用于文件和其他文件夹的“标签”。调用Folder类的addFile(file)方法将文件添加到新文件夹中,但该文件也将保留在其原始父文件夹中

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

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

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

var folderIterator = file.getParents();   
将文件添加到目标文件夹并将其从以前保存的父文件夹中删除

targetFolder.addFile(file);

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

谢谢你,安东,这绝对有帮助,非常感谢@克里斯蒂安:听到这个很高兴。这里的任何答案都解决了你的问题吗?部分-它确定了问题,Maxime Munger为itThanks提供了一个很好的解决方案,Anton,这绝对有帮助,非常感谢@克里斯蒂安:听到这个很高兴。这里的任何答案解决了你的问题吗?部分-它确定了问题,Maxime Munger为问题提供了一个很好的解决方案谢谢你,太多了,Maxime Munger,你太棒了-成功了:-!)!嗨,Maxime,如果我想把文件复制到目标文件夹中,然后从原始文件夹中删除,那么代码是什么呢?非常感谢,Maxime Munger,你太棒了-真管用了:-)!嗨,Maxime,如果我想让这些文件在复制到目标文件夹后从源文件夹中删除,代码是什么?