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

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

【Google Apps Script(GAS)】フォルダの作成や削除
Google Apps Scriptではスプレッドシートの操作の自動化だけでなく、Googleドライブ上のフォルダ操作を自動化する事も可能です。 今回はGoogle Apps Scriptを使ってGoogleドライブ上にフォル...

しかし、この方法では指定したフォルダのIDが見つからなかった場合は、「指定された ID のアイテムは見つからなかったか、アクセスする権限がありません。」というエラーが発生し、処理が止まってしまいます。

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

※本ページはプロモーションが含まれています

スポンサーリンク
スポンサーリンク

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

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

・サンプル1

function myFunction() {

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

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

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

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

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

上記のサンプル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を指定して削除する方法についてご紹介します。

【Google Apps Script(GAS)】フォルダ名を探してフォルダを削除する
以前こちらの記事で、GoogleドライブのフォルダIDを指定して削除する方法についてご紹介しました。 今回はIDではなくて名前、つまり親フォルダ内から指定した子フォルダの名前を探して削除し、名前が無かった場合は何もしな...
タイトルとURLをコピーしました