是否可以将副本放入预定义的文件夹而不是根目录

时间:2016-11-15 14:05:58

标签: javascript google-apps-script google-drive-api

我的公司每天使用谷歌脚本备份谷歌硬盘中的重要文件。该脚本生成文件夹和子文件夹的精确副本以及要在驱动器根目录中复制的位置。我的问题是:是否可以将副本放入预定义的文件夹而不是根目录。

function start() {
  
  var sourceFolder = "original";
  var targetFolder = "backup";
  
  var source = DriveApp.getFoldersByName(sourceFolder);
  var target = DriveApp.createFolder(targetFolder);
 
  if (source.hasNext()) {
    copyFolder(source.next(), target);
  }
  
}
 
function copyFolder(source, target) {
 
  var folders = source.getFolders();
  var files   = source.getFiles();
  
  while(files.hasNext()) {
    var file = files.next();
    file.makeCopy(file.getName(), target);
  }
  
  while(folders.hasNext()) {
    var subFolder = folders.next();
    var folderName = subFolder.getName();
    var targetFolder = target.addFolder(folderName);
    copyFolder(subFolder, targetFolder);
  }  
  
}

1 个答案:

答案 0 :(得分:1)

由于文件夹是预定义的,因此您有其文件夹ID,因此您可以使用:

var predefined = DriveApp.getFolderById(id);

然后将目标更改为:

var target = predefined.createFolder(targetFolder)