LANG SELRCT

コードを書く場所

2019年10月31日木曜日

ドライブのゴミ箱内のファイルを完全削除したい(Drve API)


Googleドライブの指定したフォルダ内のファイルを完全に削除して復帰できなくしたい
では指定したフォルダ内のファイルを完全に削除するコードを書きました。

ここではゴミ箱に捨てたファイルを完全に削除するコードを書きます。

deleteTrashedFiles()を実行すると復帰できないので
Drive.Files.remove(id)
はコメントアウトしています。

Drive.Files.remove(id) を実行する場合は挙動を十分理解した上で使いましょう。

もう一度書きますが、この方法で削除したファイルは二度と復帰することができません。



コード.gs
function deleteTrashedFiles() {
  var contents = DriveApp.getTrashedFiles();
  var i = 0;
  while(contents.hasNext()) {
    var file = contents.next();
    var id = file.getId();
    i++;
    Logger.log(file.getName());// 削除されるファイル
    //Drive.Files.remove(id);// この行のコメントを外して実行すると削除されます
    Utilities.sleep(1000);
  }
}


補足

手元のドライブでやった時はゴミ箱にあるファイル数が多くて途中で何度もエラーになりました。

Utilities.sleep(1000);
を入れることで一度により多くのファイルを削除できるようになりましたが、それでもエラーが出て、何度か deleteTrashedFiles() を実行してゴミ箱のファイルを完全削除できました。


関連記事

Googleドライブのファイルを完全に削除したい(Drive API)
Googleドライブの指定したフォルダ内のファイルを完全に削除して復帰できなくしたい


参考

getTrashedFiles()
https://developers.google.com/apps-script/reference/drive/drive-app#getTrashedFiles()