首页 > 解决方案 > Google Drive:将文件夹从共享驱动器复制到自己的驱动器

问题描述

有没有办法通过谷歌应用脚​​本将整个文件夹从共享驱动器复制到我的驱动器?

我按照 App Script 进行搜索并执行此操作。第一次,它奏效了。但下一次,它只复制空文件夹。同名但文件夹中没有文件。

     function DuplicateFolder() {
          var fromFolderID = '1nPONeA3YRoVRi_njRrfu7aR6wMMtH2GN';
          var toFolderID = '1D4chWItdoi68JOnKLBY0Q3846gFs6JQj';
          var fromFolder = DriveApp.getFolderById(fromFolderID);
          var childFolders = fromFolder.getFolders();
          var toFolder = DriveApp.getFolderById(toFolderID);
          var time = new Date().toLocaleTimeString().replace(/:\d+ /, ' ');
          var toFolderParent = getOrCreateSubFolder(fromFolder.getName(),toFolder);
          var toFolderChild = toFolderParent .createFolder(Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 6) + '_' + time);
          while (childFolders.hasNext()){
            var childFolder = childFolders.next();
            var toCurrentFolder = toFolderChild.createFolder(childFolder.getName())
            var fromFiles = childFolder.getFiles();
            while(fromFiles.hasNext()){
              var file = fromFiles.next();
              file.makeCopy(toCurrentFolder);
            }
            Logger.log('Coppied: ' + childFolder)
          }
        
        }
        
        
        function getOrCreateSubFolder(childFolderName, parentFolderName) {
          var newFdr =""
        
          try {
            newFdr = parentFolderName.getFoldersByName(childFolderName).next();
          }
          catch(e) {
            newFdr = parentFolderName.createFolder(childFolderName);
          }
        
          return newFdr
        }

非常感谢!

标签: copygoogle-drive-shared-drive

解决方案


推荐阅读