【Google Apps Script(GAS)】フォルダ名を探してフォルダを削除する

オンラインGAS講座 開講中!
オンライン無料体験あり!
最短4週間でGASをマスターできる
Google Apps Scriptコース』開講中!

以前こちらの記事で、GoogleドライブのフォルダIDを指定して削除する方法についてご紹介しました。

以前こちらの記事で、Googleドライブのフォルダ削除方法について簡単にご紹介しました。 しかし、この方法では指定した...

今回はIDではなくて名前、つまり親フォルダ内から指定した子フォルダの名前を探して削除し、名前が無かった場合は何もしないという処理についてご紹介します。

フォルダ名を探してフォルダを削除する

今回も親フォルダは必ず存在しているという前提の元で、下記サンプル1をご紹介します。

・サンプル1

function myFunction() {

var folderid = ‘[親フォルダのIDを入力]’; //削除したい子フォルダが存在するの親フォルダのIDを指定
var folder = DriveApp.getFolderById(folderid); //IDから親フォルダを取得
var foldername = ‘test’; //削除したい子フォルダの名前を指定
var folder_childs = folder.getFolders(); //子フォルダ一覧を取得

if ( folder_childs.hasNext() ){ //取得した子フォルダ一覧の中で、子フォルダが1つでもある場合

while ( folder_childs.hasNext() ){ //取得した子フォルダ一覧の中で、まだnextで未取得の子フォルダがあるか確認
var deletefolder = folder_childs.next(); //子フォルダを順番に取得
if ( deletefolder.getName().indexOf(foldername) != -1 ){ //削除したい子フォルダの名前が存在する場合

var deletefolderid = deletefolder.getId(); //削除したい子フォルダのIDを取得
var deletefolder = DriveApp.getFolderById(deletefolderid); //削除したい子フォルダを取得

deletefolder.setTrashed(true); //子フォルダをごみ箱へ
}
}
}else{
}
}

それでは上記のサンプル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を指定して削除する方法よりは、フォルダ名を指定して削除する方法の方が使い勝手はよいかもしれません!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする