初心者向け!GASでGoogleドライブのファイルを簡単に削除する方法

Googleドライブのファイルを簡単に削除したいんだけど、GASでできるのかなぁ…やり方わからなくて困っています…
猫男
猫男
catman
catman
GASを使えば、Googleドライブのファイルを手軽に削除できるさ。catmanが手ほどきしよう!

GASを使ってGoogleドライブのファイルを削除する準備

まず、GAS(Google Apps Script)でGoogleドライブのファイルを削除するための基本的な準備が必要だ。GASのスクリプト画面にアクセスしよう。

GASプロジェクトを作成する

GASプロジェクトを作成し、ドライブAPIを使用するために権限を付与する工程が必要だ。

  1. Googleドライブを開き、「+新規」から「その他」→「Google Apps Script」を選択する。
  2. スクリプトエディタが開いたら、「プロジェクトを名付ける」をクリックし、分かりやすい名前をつける。

ドライブAPIの権限を設定する

GASでGoogleドライブのファイルを操作するには、適切な権限設定が欠かせない。

  1. スクリプトエディタで、右上の「+」ボタンから「ライブラリ」を選択し、「Google ドライブ API」を検索。
  2. API無効となっている場合は有効にし、「追加」をクリックしてプロジェクトに追加する。

GASでGoogleドライブのファイルを削除するスクリプト

準備ができたところで、GASスクリプトによるファイル削除の方法を見ていこう。ここでは、ファイルIDを使って削除する方法を説明する。

ファイルIDを指定して削除する

以下のスクリプトは、指定したファイルIDに基づいてGoogleドライブのファイルを削除するものだ。

 function deleteFile(fileId) {
  var file = DriveApp.getFileById(fileId);
  file.setTrashed(true);
 } 

DriveApp.getFileById(fileId)を使用し、指定のファイルIDに基づいてファイルオブジェクトを取得する。

取得したファイルオブジェクトに対し、setTrashed(true)を呼び出すことでファイルを削除する。

これなら簡単にGoogleドライブのファイルを削除できそうですね!でも、ファイルIDはどこで確認できますか?
猫男
猫男
catman
catman
Googleドライブでファイルを右クリックして「リンクを取得」を選ぶと、URLの中にファイルIDがあるはずだ。URLの「/d/」と「/edit」の間にあるのがファイルIDだぞ。

練習問題

以下のスクリプトを完成させ、特定のフォルダ内のすべてのファイルを削除するGASスクリプトを書いてみよう。

 function deleteFilesInFolder(folderId) {
  // フォルダを取得
  var folder = DriveApp.getFolderById(folderId);
  // _____________
  while (files.hasNext()) {
    // ファイルを削除
    var file = files.next();
    file.setTrashed(true);
  }
 } 

解答・解説

  

 function deleteFilesInFolder(folderId) {
  // フォルダを取得
  var folder = DriveApp.getFolderById(folderId);
  // フォルダ内の全ファイルを取得
  var files = folder.getFiles();
  while (files.hasNext()) {
    // ファイルを削除
    var file = files.next();
    file.setTrashed(true);
  }
 } 

DriveApp.getFolderById(folderId)で指定フォルダを取得し、folder内のすべてのファイルをfolder.getFiles()でリスト化する。

取得したファイルをhasNext()で確認しながら、setTrashed(true)で削除していく仕組みだ。

フォルダの中身を一気に削除できるなんて、すごく便利!
catman、ありがとう!
猫男
猫男
catman
catman
どういたしまして。GASで使えるテクニックはまだまだある。引き続きいろいろ試してみるといいさ!