G Script - How to find part of filename in G Drive

2019-08-20 19:18发布

How to search for a particular text in a filename in G App Script? My full File name is "Daily Stock Summary Report Kadlunga20180426_061749_946.pdf". I would like to search for all file with the string "Daily Stock Summary Report Kadlunga" and copy it to folder name "Kadlunga" in G Drive. My current code works for the full file name. I am not exactly sure how to do this for p[art of the filename.

function moveFile() {

 var dApp = DriveApp;
 var folderIterator = dApp.getFoldersByName("Attachments");

 var folder = folderIterator.next();
 var filesIterator = folder.getFiles();

 var Kadlunga = folder.getFoldersByName("Kadlunga").next(); 
 var Napperby = folder.getFoldersByName("Napperby").next();



while (filesIterator.hasNext()){
   var file = filesIterator.next();

   var fileName = file.getName();   

    if(fileName == "Daily Stock Summary Report 
         Kadlunga20180426_061749_946.pdf") 
          {
             file.makeCopy(Kadlunga);   
          } 
        if(fileName == "Daily Stock Summary Report 
         Napperby20180426_061749_958.pdf") 
         {
             file.makeCopy(Napperby);   
         }

      }

  }

1条回答
孤傲高冷的网名
2楼-- · 2019-08-20 19:32

How about this modification?

Modification points :

  • Using searchFiles(), files with the filename including Daily Stock Summary Report are retrieved.
  • Using indexOf(), files are categorized and imported to the folders of Kadlunga and Napperby.

Modified script :

function moveFile() {
  var dApp = DriveApp;
  var folderIterator = dApp.getFoldersByName("Attachments");
  var folder = folderIterator.next();
  var filesIterator = folder.searchFiles('title contains "Daily Stock Summary Report"');
  var Kadlunga = folder.getFoldersByName("Kadlunga").next(); 
  var Napperby = folder.getFoldersByName("Napperby").next();
  while (filesIterator.hasNext()) {
    var file = filesIterator.next();
    var fileName = file.getName();   
    if (fileName.indexOf("Kadlunga") > -1) {
      file.makeCopy(Kadlunga);
    }
    if (fileName.indexOf("Napperby") > -1) {
      file.makeCopy(Napperby);
    }
  }
}

Note :

  • Please modify this script for your environment.

References :

If I misunderstand your question, I'm sorry.

查看更多
登录 后发表回答