LoginSignup
5
10

More than 5 years have passed since last update.

Googleドライブ「更新後○日経過したファイルを自動削除する」フォルダを作ってみたが、あまり意味なかったメモ

Posted at

既に当たり前のように試行されていると思いますが、投稿を見つけられなかったので反面教師気取りで置いておきます。

Google Apps Script を利用して、スクリプトを1時間周期程度で実行するよう設定します。

Google Apps Scriptとは?という方は簡単な導入方法へ
「共有フォルダ(3日間保持)」というフォルダ(例)を作り、別途以下のスクリプトを配置します。

スクリプト動作内容

「時限削除したいフォルダの名前」に一致するフォルダ内のファイルの更新日時が4日以上経っていたら、ファイルを「空」で上書きし、ごみ箱に送るといった感じです。指定フォルダがフォルダ内にあっても名前が一致すれば対象となるので、それを利用したフォルダ構成にするのも良いでしょう。

※指定するフォルダ名は他のものと被らないようにしてください。 名前が一致するフォルダ全てが該当します。

function trashTemporaryFile() {
  var folderName = "共有フォルダ(3日間保持)"; //時限削除したいフォルダの名前
  var days = 4; //バッファを見て4日

  var folders = DriveApp.getFoldersByName(folderName);
  while (folders.hasNext()) {
    var folder = folders.next();
    var files = folder.getFiles();
    while(files.hasNext()) {
      var file = files.next();
      if (new Date() - file.getLastUpdated() > days * 24 * 60 * 60 * 1000) {
        //ファイルを空に(履歴は30日間残る)
        file.setContent("");
        //ゴミ箱に(ファイル完全削除ではない)
        file.setTrashed(true);
      }
    }
  }
}

「共有アイテム」で共有されたフォルダの場合、「マイフォルダ」に紐づければ対象となります。

共有権限も操作したかったのですが、他者との共有状態や
各OSのドライブアプリの相性によって制御が様々なので、考えるのをやめました・・
Googleドライブ自体バージョン管理されている上、現状スクリプトではごみ箱にしか配置できないので
ドライブの空き容量が維持できるわけではありません。結局ゴミ箱を空にする必要があります。
だったら、何の意味があるのかといわれると・・「あまり意味なかった」のタイトル回収で結びたいと思います。失礼しました。

一応、ファイルを空で上書きする前のバージョンは30日保持されるので、30日後には容量確保される想定です。
共有先を閲覧者権限に絞れば「時限ダウンロード」っぽい事を実現したり、ファイルの整理等には利用できます。

もっと良い方法や他に便利なスクリプトがあれば教えてください。(これが本題^^;)

Google Apps Script

自分のGoogleドライブを開いた状態で、以下URLを開いてください。
https://script.google.com/intro

  • 所定スクリプトを貼り付けます。

  • 「無題のプロジェクト」となっているタイトルを任意のファイル名に変え

  • スケジュールは時計のようなアイコンをクリックするとどういった周期で実行するか等の詳細が設定できるので任意に設定します。

  • 「保存」ボタンを押します。
    (途中でスクリプトのファイル書き込み権限など許可画面が出現しますので指示に従って下さい。)
    ドライブに戻るとタイトルをつけた名前でファイルができていると思いますのでこれでセット完了となります。

ファイルを消すと作用しなくなるのでご注意。

5
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
10