初心者向け!GASでGoogleドライブのファイルを簡単に削除する方法
Googleドライブのファイルを簡単に削除したいんだけど、GASでできるのかなぁ…やり方わからなくて困っています…

猫男

catman
GASを使えば、Googleドライブのファイルを手軽に削除できるさ。catmanが手ほどきしよう!
GASを使ってGoogleドライブのファイルを削除する準備
まず、GAS(Google Apps Script)でGoogleドライブのファイルを削除するための基本的な準備が必要だ。GASのスクリプト画面にアクセスしよう。
GASプロジェクトを作成する
GASプロジェクトを作成し、ドライブAPIを使用するために権限を付与する工程が必要だ。
- Googleドライブを開き、「+新規」から「その他」→「Google Apps Script」を選択する。
- スクリプトエディタが開いたら、「プロジェクトを名付ける」をクリックし、分かりやすい名前をつける。
ドライブAPIの権限を設定する
GASでGoogleドライブのファイルを操作するには、適切な権限設定が欠かせない。
- スクリプトエディタで、右上の「+」ボタンから「ライブラリ」を選択し、「Google ドライブ API」を検索。
- 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
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で使えるテクニックはまだまだある。引き続きいろいろ試してみるといいさ!