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

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