0

我发现以下 Google Apps 脚本允许我将文件夹从 MyDrive 复制到 MyDrive 并将 SharedFolders 复制到 MyDrive:

function start() {

  var sourceFolder = "source";
  var targetFolder = "target";

  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.createFolder(folderName);
    copyFolder(subFolder, targetFolder);
  }  

}

我试图修改它以将文件夹从 MyDrive 复制到 Teamdrive,但我失败了,就像我完全的菜鸟一样。有人可以为此目的帮助我更新它吗?

4

2 回答 2

2

下面的示例将文件移动到指定的文件夹(可以是团队驱动器)。目前还没有时间将它与您的代码集成,但如果我稍后有空,我会发布一个更好的答案。希望能帮助到你

 //Move the new doc to the folder
  var fileId   = DriveApp.getFileById("<<FILEID>>");
  var folder = DriveApp.getFolderById("<<WHERE TO SAVE IT>>");
  var file = DriveApp.getFileById(fileId);

  folder.addFile(file);
于 2019-01-07T16:12:47.223 回答
0

只是一点点改变和成功。

function start() {

  var sourceFolder = "source";

  var source = DriveApp.getFoldersByName(sourceFolder);
  var target = DriveApp.getFolderById("ID");

  while (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.createFolder(folderName);
    copyFolder(subFolder, targetFolder);
  }  

}
于 2021-08-24T05:39:59.057 回答