GASで簡単!Googleドライブの共有ファイル一覧を取得する方法

僕、Googleドライブの共有ファイルを全部一覧で見たいんですけど、どうすればいいんでしょう?
猫男
猫男
catman
catman
なるほど、それならGAS(Google Apps Script)で簡単に取得できるよう。catmanが手ほどきしてやろう。

GASでGoogleドライブの共有ファイルを取得する基本

Googleドライブの共有ファイルは、DriveAppクラスを利用して一覧を取得することが可能だ。それではGASで実際のスクリプトを見てみよう。

DriveAppクラスはGoogleドライブのファイルやフォルダを操作するための便利なクラスだ。


function listSharedFiles() {
  var files = DriveApp.getFiles();
  while (files.hasNext()) {
    var file = files.next();
    if (file.getSharingAccess() !== DriveApp.Access.PRIVATE) {
      Logger.log("共有ファイル: " + file.getName());
    }
  }
}

このスクリプトでは、DriveApp.getFiles()メソッドを使って、ドライブ内の全ファイルを取得している。

取得したファイルを一つずつチェックし、getSharingAccess()メソッドで共有状態を調べている。

PRIVATE以外の共有状態であれば、ファイル名をログに出力している。

GASでの共有ファイルの判定方法

共有状態はDriveApp.Accessを使って判定することができる。それぞれの値について少し詳しく説明しよう。

DriveApp.Accessの種類

アクセス権には以下のような種類がある。

  • PRIVATE: 完全に非公開の状態
  • ANYONE_WITH_LINK: リンクを知っている人なら誰でもアクセス可能
  • DOMAIN: 特定のドメイン内のユーザーだけがアクセス可能

こうして状態を判定した後、条件に応じて処理を行えるのがGASの便利なところよう。

これなら僕でも簡単に共有ファイルをチェックできますね!
猫男
猫男

まとめ:GASでGoogleドライブの共有ファイルを一覧取得

  • Googleドライブのファイル管理にはDriveAppを活用
  • DriveApp.getFiles()で全ファイルを取得
  • getSharingAccess()で共有状態を判定
これでGoogleドライブ内の共有ファイルもよく分かるようになりました。catman、ありがとう!
猫男
猫男

練習問題:ドメイン共有ファイルを取得するスクリプトを書いてみよう

この問題に挑戦してみよう。GASを使ってGoogleドライブ内の「ドメイン共有」ファイルを一覧で取得するスクリプトを書いてみてほしい。

 

練習問題の解答・解説


function listDomainSharedFiles() {
  var files = DriveApp.getFiles();
  while (files.hasNext()) {
    var file = files.next();
    if (file.getSharingAccess() == DriveApp.Access.DOMAIN) {
      Logger.log("ドメイン共有ファイル: " + file.getName());
    }
  }
}

このスクリプトでは、ファイルの共有状態がDriveApp.Access.DOMAINであるかどうかを判定している。

アクセス権がドメインに限定されているファイルのみログに出力するようにコーディングしている。このようにGASを使えば、ドメイン内の共有ファイルも一目で確認できる。