DriveScript

【GAS】Googleドライブのファイルを削除する

setTrashed – Googleドライブのファイルを削除する

Googleドライブのファイルを削除するにはファイルオブジェクトのsetTrashedメソッドを使います。

正確に言うと、「削除する」のではなく「ゴミ箱に入れる」または「ゴミ箱フラグをtrueにする」のですが、まあどっちでもいいです。結論は変わりません。


Googleドライブにこんなファイルがあるとします。


削除するコード

const setFileTrashed = () => {
  const driveApp = DriveApp
  const folder = driveApp.getFolderById('フォルダIDが入ります')
  const files = folder.getFiles()
  while (files.hasNext()) {
    const file = files.next()
    const trashedFile = file.setTrashed(true)
  }
}

実行結果


はい、消えてますね。

folder.getFiles()以降のwhileうんちゃらかんちゃらというのがよくわからない人は↓を読んでみてください。

ファイルイテレーターについて

削除したファイルを元に戻すには?

削除しちゃったファイルを元に戻す方法もあります。さっきと逆のことをすればいいんです。

const setFileTrashed = () => {
  const driveApp = DriveApp
  const folder = driveApp.getFolderById('フォルダIDが入ります')
  const files = folder.getFiles()
  while (files.hasNext()) {
    const file = files.next()
    const trashedFile = file.setTrashed(true)
    const restoredFile = file.setTrashed(false)
  }
}

setTrashed( )の( )の中をtrueにするとゴミ箱行き、falseにするとゴミ箱から戻ってきます。

よって実行結果はこうなります。

ゴミ箱に入れてからすぐに戻す謎の挙動を実現しました。

完全に削除したいとき

もはやゴミ箱どころではなく、ファイルをなきものにしたい場合はDriveAppではなく、DriveAPIを使います。

レッツ断捨離

const setFileTrashed = () => {
  const driveApp = DriveApp
  const folder = driveApp.getFolderById('フォルダIDが入ります')
  const files = folder.getFiles()
  while (files.hasNext()) {
    const file = files.next()
    const trashedFile = file.setTrashed(true)
    const restoredFile = file.setTrashed(false)
    Drive.Files.remove(restoredFile.getId())
  }
}

Drive.Files.removeメソッドを使うと完全になきものにできます。DriveAPIすげえ。

DriveAPIを利用するにはGASエディタで「サービス」を追加する必要があります。

エディタ画面のメニューにあるサービスの+ボタンをクリック

DriveAPIを追加(バージョンはV3)


「サービス」の下に「Drive」が追加されてればオッケー

Drive.Files.removeの使い方

Drive.Files.remove( )は、( )カッコの中にファイルのIDを入れる必要があります。

ですので、ここではこのようにしています。

Drive.Files.remove(restoredFile.getId())


もう戻ってくるなよ

Copied title and URL