Google Apps Script(GAS)でGoogleドライブのファイルを削除方法(ゴミ箱に移すsetTrashed)

Google Apps Script(GAS)を使ってGoogleドライブ上に存在するファイルを削除する方法を紹介します。

スプレッドシートやドキュメントから画像もGoogleドライブのゴミ箱に移動できます。

今回解説するsetTrashedメソッドとremoveFileの相違点も解説していきます。

Googleドライブはファイルが大量発生

GoogleドライブをGoogle Apps Script(GAS)で利用していると、ファイルがどんどん溜まってきます。

通常のパソコンファイルと違い、Googleドライブでは同じファイル名でも異なるIDとして両方存在することになります。

そのため、GASでファイルの自動生成などを行なっていると、大量のファイルができて閲覧性が低下します。

GASでGoogleドライブのファイルを削除

Google Apps Scriptでは、Googleドライブのファイル作成だけでなく、ファイル削除も実行することができます。

GASでファイル削除も実施することで、作成したファイルの整理を行うことができ、Googleドライブの管理画面をスッキリさせることができます。

Google Apps ScriptのsetTrashedメソッド

Google Apps Script(GAS)でGoogleドライブのファイルを削除するにはsetTrashedメソッドを使います。

以下のように記述することで、指定したファイルをゴミ箱に移すことができます。

DriveApp.setTrashed(file);

メソッドの名前にある通り、完全にファイルを削除するわけではなく、Googleドライブのゴミ箱に移すことになります。

そのため、もし、削除してしまったあとも、Googleドライブの管理画面からゴミ箱から復旧が可能です。

setTrashedのサンプルコード(ファイル削除)

GASのsetTrashedメソッドを利用したGoogleドライブのファイル削除のサンプルコードを解説します。

今回、「ドライブ削除テスト」というスプレッドシートを削除するGASのコードを解説します。

①ファイルIDが判明しているファイル、②ファイル名が分かるファイルの2パターンを紹介していきます。

①ファイルIDが判明しているファイルを削除

ファイルIDが判明している場合、DriveAppクラスのgetFileByIdメソッドを使い、ファイルを読み込み、取得したファイルでsetTrashedメソッドをtrueにします。

function delFileByID() {
//DriveAppクラスからファイルIDでファイル一意に取得する
var fileData = DriveApp.getFileById("1dGgQzS6ln_2us5I7QpTGOv2XxLvj3bYmhzSVKFmjAs4");
//IDから取得したファイルをゴミ箱のフラグをtrueにする
var getData = fileData.setTrashed(true);
}

②ファイル名が分かるファイルを削除

ファイルIDはわからず、ファイル名がわかる場合にも削除はできます。

function delFileByName() {
//DriveAppクラスからファイル名でファイル(ファイル名一致した分)を取得する
var fileData = DriveApp.getFilesByName("ドライブ削除テスト");
//next()でファイルを取得し、ゴミ箱のフラグをtrueにする
var getData = fileData.next().setTrashed(true);
}

この場合、ファイル名が同一のものの場合は、すべて削除されず1つずつ削除されていきます。

①、②のどちらのコードでも実行すると、指定したファイルがゴミ箱に移動されます。

まだこの状態では復元は可能で、ゴミ箱から復元を選べば元に戻すことができます。

Google Apps ScriptでもファイルIDを指定する形で「setTrashed」でfalseにすれば、ゴミ箱から元に戻せます。

このようにGASではゴミ箱に移すことだけが可能で、完全に削除することはできません。

setTrashedとremoveFileとの違い・相違点は?

なお、Google Apps Scriptには、removeFileというメソッドも用意されています。

setTrashedとremoveFileには違いがあり、使い方が異なります。

setTrashedメソッドでは引数のファイルをゴミ箱に移すのに対し、removeFileはファイル削除ではなく、ファイルの関係を削除するという意味です。

Googleドライブのフォルダ表示から消えるだけで、removeFileではファイル自体は削除はすることができません。

ファイル削除という意味ではsetTrashedメソッドを使うようにしましょう。

まとめ・終わりに

今回、Google Apps Script(GAS)でGoogleドライブのファイルをゴミ箱に移す(ファイル削除)方法を解説しました。

GASではsetTrashedメソッドを使い、引数を指定したファイルをゴミ箱に移すことができます。

GASを使っていると、Googleドライブのファイルをたくさん生成してしまうことがあります。

setTrashedメソッドを使うことでGoogleドライブのファイルをゴミ箱に移し、削除するようにしましょう。