2020年8月19日水曜日

GASでファイルをリネームして移動させる

概要

ラズパイで撮影した写真をGoogleDriveに転送するようにしたので、GoogleDrive側でGASを1時間に1回動かしてファイル操作をしています。
初めてGASに触りましたが、Web上の情報を寄せ集めて作ることができました。
このスクリプトでは、「XXXXXXXXXXXXXXXXXXXXXX」というディレクトリで、以下の事をしています。
  1. Photo.jpgがあれば、日付情報の名前にリネームして「YYYYYYYYYYYYYYYYYYYYYYY」ディレクトリに移動する。
  2. New_Photo.jpgがあれば、Photo.jpgにリネームする。

ソースコード


 function myFunction() {
  
   // ディレクトリのIDを取得
   var Input_dir = DriveApp.getFolderById("XXXXXXXXXXXXXXXXXXXXXX");
   var Output_dir = DriveApp.getFolderById('YYYYYYYYYYYYYYYYYYYYYYY');
  
   //フォルダ内にある全てのファイルを取得
   var LIST = Input_dir.getFiles();

   var Input_File_name = "Photo.jpg"
   var Input_NewFile_name = "New_Photo.jpg";
  
   //Photo.jpgがあればリネーム
   while(LIST.hasNext()){
     if(LIST.next() == Input_File_name){
       Logger.log("Photo.jpg move.");
       var Input_File = Input_dir.getFilesByName(Input_File_name).next();
      
       // 日付日時情報にリネームして別のフォルダに出力
       var OutputFileName = Input_File.getName().replace('.jpg', '')+'_'+Utilities.formatDate(new Date(), 'JST', 'yyyyMMddHHmm')+'.jpg'  
       Input_File.makeCopy(OutputFileName, Output_dir);
       Input_File.setTrashed(true);
     }
   }
  
   var LIST = Input_dir.getFiles();
  
   //New_Photo.jpgがあればリネーム
   while(LIST.hasNext()){
     if(LIST.next() == Input_NewFile_name){
       Logger.log("New_Photo.jpg move.");
       var Input_NewFile = Input_dir.getFilesByName(Input_NewFile_name).next();
  
       // Newを消してファイルをリネーム
       var OutputFileName = Input_NewFile.getName().replace('New_', '')  
       Input_NewFile.makeCopy(OutputFileName, Input_dir);
       Input_NewFile.setTrashed(true);
     }
   }
 }

0 件のコメント:

コメントを投稿