【问题标题】:Copy File Into Good Folder将文件复制到好文件夹中
【发布时间】:2019-08-19 09:44:23
【问题描述】:

我想编写一个函数,该函数将我的一个特定文件夹的文件复制到另一个文件夹中,该文件夹具有一些特定文件夹,该文件夹使用另一个函数创建,其中包含我的文件描述。

所以进入我的while循环filesIter.hasNext()来检查我所有文件的描述我需要实现另一个whilefolderIter.hasNext()来检查我的文件夹的描述。如果两个描述相同,我将文件复制到好文件夹中。

但目前我可以在我的第一个文件夹中执行此操作,但我不知道如何在我的文件描述不等于我的文件夹描述时检查下一个文件夹。

function CopySheetsIntoGoodFolder2() {
    var folderFiles = DriveApp.getFolderById('123C');
    var filesIter = folderFiles.getFiles();

    while (filesIter.hasNext()) {
        var files = filesIter.next();
        var descriFiles = files.getDescription();
        var folder = DriveApp.getFolderById('123D');
        var folderIter = folder.getFolders();
        var folders = folderIter.next();
        var descriFolder = folders.getDescription();

        while (descriFiles != descriFolder) {
            folderIter.hasNext().next();
        }
        if (descriFiles == descriFolder) {
            files.makeCopy(folders);
        }
    }
}

我知道这是我的第二个错误,但我不知道如何做我想做的事。我已经尝试了很多东西,但现在我被阻止了......

【问题讨论】:

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


    【解决方案1】:

    您需要一个外部循环来获取文件描述。还有一个内循环(在外循环内),用于获取文件夹描述并将它们与文件描述相匹配。

    试试这个:

    function CopySheetsIntoGoodFolder2() {
      var folderFiles = DriveApp.getFolderById('123C');
      var filesIter = folderFiles.getFiles();
    
      // This can be outside the loop. No point getting the same folder each time
      var folder = DriveApp.getFolderById('123D');
    
      // Declare variable
      var files, folders, descriFiles, descriFolder, folderIter;
    
      // Loop through files [Outer loop]
      while (filesIter.hasNext()) {
    
        files = filesIter.next(); // The file
        descriFiles = files.getDescription(); // File description
    
        folderIter = folder.getFolders(); // Get sub-folders
    
        while (folderIter.hasNext()) { // Loop through sub-folders [Inner loop]
    
          folders = folderIter.next(); // Get a folder
          descriFolder = folders.getDescription(); // Get its description
    
          if (descriFiles == descriFolder) { // Check is descriptions match
            files.makeCopy(folders);
            break; // Break loop if the descriptions match and the file has been copied.
          } 
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-12-08
      • 2020-08-18
      • 1970-01-01
      • 2014-12-03
      • 1970-01-01
      • 1970-01-01
      • 2017-03-31
      • 1970-01-01
      • 2012-01-14
      相关资源
      最近更新 更多