Google Apps Script

【GAS】Googleドライブの指定フォルダのファイルを削除する(setTrashed/removeFile)

この記事では、Googleドライブ上にあるファイルを削除するスクリプトを紹介します。

ファイルの削除だから「delete~~」のようなメソッドがあるかと思いきや・・・ないんですね。

そこで、「削除」に関する2つのメソッドを紹介します。

①ファイルを削除する
→Fileオブジェクト.setTrashedメソッド

②指定フォルダへのファイル追加を外す
→Folderオブジェクト.removeFileメソッド

ファイルを削除する

こちらが一般的な「削除」で、ファイルをゴミ箱に入れる処理です。setTrashedメソッドを使用します。

Fileオブジェクト.setTrashed(trashed)

  • パラメータ:Boolean(trueを指定するとユーザーのドライブのゴミ箱に移動する)
  • 戻り値:File
  • 説明:ファイルがユーザーのドライブのゴミ箱にあるかどうかを設定します。ファイルを破棄できるのは所有者のみです。
  • 公式リファレンスはこちら

サンプルスクリプトです。実行すると、指定のファイルがゴミ箱に移動します。

指定フォルダへのファイル追加を外す

フォルダとファイルの紐付けを外す(解除する)方法です。removeFileメソッドを使用します。

※Googleドライブでは、1つのファイルを複数フォルダに追加することができます(参考:【GAS】Googleドライブでファイルが追加されている全てのフォルダを取得する

Folderオブジェクト.removeFile(child)

  • パラメータ:File(removeするファイルを指定)
  • 戻り値:Folder
  • 説明:指定ファイルを指定フォルダから外します。この方法ではファイルは削除されませんが、ファイルがそのすべての親から削除されると、ファイルを検索するか「すべてのアイテム」ビューを使用しない限り、ドライブに表示できません。
  • 公式リファレンスはこちら

サンプルスクリプトです。実行すると、「指定ファイルの指定フォルダへの追加」が外されます。※ファイルはゴミ箱に移動しません。

【まとめ】setTrashedメソッドとremoveFileメソッドの違い

「テストファイル」という1つのファイルが、フォルダA,B,Cの3つのフォルダに追加されている前提で、2つのメソッドの動作を比べてみましょう。

setTrashedメソッド(ファイルをゴミ箱へ)

「テストファイル」に対して、setTrashedメソッドを実行します。「テストファイル」がゴミ箱に移動されます。

ファイルをゴミ箱に移動する

removeFileメソッド(フォルダ追加を外す)

「フォルダA」に対して、removeFileメソッドを実行します。「フォルダA」と「テストファイル」の紐付けが解除されます。

ファイル追加を外す

removeFileメソッドのポイントは、「ファイル削除ではない」ことです。ファイル削除ではなく、「フォルダへのファイル追加を外す」だけです。

上記の例で、さらに、フォルダB,Cから「テストファイル」を外しても、「テストファイル」はゴミ箱にはいかず、「どのフォルダにも属さない幻のファイル」になります(ファイル検索で表示することができます)

以上です。違いを理解して、使い分けてみましょう!

2020年・小学校でプログラミング教育が必修化

2020年、いよいよ小学校でプログラミング授業が始まります。続く2021年からは「中学校」で開始。2022年からは「高校」でも導入されます。

あと何年かしたら、あたりまえにプログラミングを使いこなす新入社員が入ってくるかもしれません。2020年、大人も一緒に学んでみませんか?

1週間のオンライン無料体験
いつでもどこでも今すぐ視聴OK