如何将当前文件移动到文件夹?

时间:2016-04-25 20:37:00

标签: google-apps-script

我想将当前文件移动到一个文件夹,并根据单元格值的变化将其从它所在的文件夹中删除。这就是我所拥有的:

 function onEdit() {

var File = SpreadsheetApp.getActiveSpreadsheet();
var TransferComplete = File.getSheetByName("Sheet9").getRange("E24").getValue();

var ActiveFolder = DriveApp.getFolderById("a0lweiurnawoeiuranwv");
var ArchiveFolder = DriveApp.getFolderById("apsleriuoavwnoeiura");  



  if (TransferComplete = "Yes" ) 
  {ArchiveFolder.addFile(File) && ActiveFolder.removeFile(File)};


}

错误说无法找到"添加文件"方法。

1 个答案:

答案 0 :(得分:1)

要移动文件,您必须先将文件本身作为文件而不是电子表格。

您需要使用DriveApp.getFileById()来检索文件对象,然后将其传递到ArchiveFolder.addFile()

此外,您的代码存在一些语法错误。

  • 您正在使用分配运算符=而不是比较运算符=='==='来比较TransferComplete"Yes"
  • 您在if语句结尾处不需要声明分隔符;
  • 您正在使用&&分隔两个语句,您需要将它们分开,如此

    if(TransferComplete == "Yes" ){ ArchiveFolder.addFile(File); ActiveFolder.removeFile(File); }

更正后的代码:

function onEdit() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var file = DriveApp.getFileById(spreadsheet.getId());
  var transfeComplete = spreadsheet.getSheetByName("Sheet9").getRange("E24").getValue();

  var activeFolder = DriveApp.getFolderById("a0lweiurnawoeiuranwv");
  var archivefolder = DriveApp.getFolderById("apsleriuoavwnoeiura");  

  if (transfeComplete === "Yes" ){
    archivefolder.addFile(file);
    activeFolder.removeFile(file);
  }
}