以前こちらの記事で、GoogleドライブのフォルダIDを指定して削除する方法についてご紹介しました。
今回はIDではなくて名前、つまり親フォルダ内から指定した子フォルダの名前を探して削除し、名前が無かった場合は何もしないという処理についてご紹介します。
フォルダ名を探してフォルダを削除する
今回も親フォルダは必ず存在しているという前提の元で、下記サンプル1をご紹介します。
・サンプル1
function myFunction() { var folderid = ‘[親フォルダのIDを入力]’; //削除したい子フォルダが存在するの親フォルダのIDを指定 if ( folder_childs.hasNext() ){ //取得した子フォルダ一覧の中で、子フォルダが1つでもある場合 while ( folder_childs.hasNext() ){ //取得した子フォルダ一覧の中で、まだnextで未取得の子フォルダがあるか確認 var deletefolderid = deletefolder.getId(); //削除したい子フォルダのIDを取得 deletefolder.setTrashed(true); //子フォルダをごみ箱へ |
それでは上記のサンプル1についてご紹介しますと、
var folderid = ‘[親フォルダのIDを入力]’;
で、削除したい子フォルダが存在する、親フォルダのIDを指定します。
var folder = DriveApp.getFolderById(folderid);
では、フォルダIDを元に親フォルダを取得し、
var foldername = ‘test’;
で親フォルダ内の子フォルダ一覧を取得します。
var folder_childs = folder.getFolders();
で親フォルダ内の子フォルダ一覧を取得します。
if ( folder_childs.hasNext() ){
では、そもそも取得した子フォルダ一覧の中で、子フォルダが1つでもある場合は、フォルダを探す処理を開始します。
そもそも子フォルダ1つもなかった場合、
}else{
に移行した後に処理を終了します。
while ( folder_childs.hasNext() ){
取得した子フォルダ一覧の中で、まだnextで未取得の子フォルダがあるか確認
var deletefolder = folder_childs.next();
では子フォルダを順番に取得していき、
if ( deletefolder.getName().indexOf(foldername) != -1 ){
では、削除したい子フォルダのIDが存在した場合、
var deletefolderid = deletefolder.getId();
で削除したい子フォルダのIDを取得して、
var deletefolder = DriveApp.getFolderById(deletefolderid);
で削除したい子フォルダを取得し 、
deletefolder.setTrashed(true);
で子フォルダはごみ箱行きです。
前回のフォルダIDを指定して削除する方法よりは、フォルダ名を指定して削除する方法の方が使い勝手はよいかもしれません!