見出し画像

【GAS】でGoogleドライブのフォルダを使いこなす! 全体像編


Google ドライブでのフォルダとは?

Google ドライブ上でのフォルダの意味合いは、基本的にパソコンでのそれと同じで、複数のファイルやフォルダをまとめた入れ物であります。

ここでは、そんなフォルダが、GoogleAppsScript 内でどうすれば扱えるのか、また入れ物として持っているファイルやフォルダ以外に、どの様な情報を保持しているのか、そしてパソコンなどのフォルダと少し違う特徴があるのでご紹介したいと思います。

GoogleAppsScript でフォルダを扱うには?

まず、GoogleAppsScript で Google ドライブのフォルダを扱うには、「Drive サービス」のクラス群の中の「Folder」クラスのオブジェクトを使います。

フォルダを構成している要素

  • 基本情報

フォルダ名、フォルダの説明やフォルダの作成日などの基本的な情報

  • 権限情報(共有情報)

フォルダを他の人と共有する際の「誰」とフォルダで「できること」の設定情報

  • ファイル、フォルダ

フォルダの中にはファイルやフォルダが入っています。

Google ドライブとパソコンなどとの間のフォルダの特性の違い

パソコンなどで、あるフォルダを扱う際、一般的にはそのフォルダの「パス」によって特定できると思います。
つまり階層的に特定しています。
GoogleDrive でもフォルダを階層的に管理していますが、GoogleAppsScript のプログラム上で、あるフォルダを特定したい場合は、基本的にはそのフォルダの ID を使います。
なお、ファイルにおいても GoogleAppsScript でそれを特定するには、パスではなくファイルの ID を使います。

フォルダが持っている基本情報

ここでは、フォルダが持っている基本的な情報(フォルダ名、フォルダの説明、作成日...)にどの様なものがあるか簡単に紹介していきます。
なお、そのような基本的な情報の扱い方など、より具体的なことは下の記事をご覧ください。

  • 名前

フォルダの名前です。

  • ID

それぞれ違う固有の ID が、フォルダごとに割り当てられています。
これは、そのフォルダにアクセスするときなどに使われます。

  • URL

このフォルダが持っている URL にアクセスすると、ブラウザ上などで直接確認できます。
また、この URL はフォルダの ID から作られています。

https://drive.google.com/drive/folders/フォルダ ID

  • 説明

フォルダの説明です。

  • 容量

そのフォルダが保持しているフォルダやファイルの容量(バイト数)の総量ではなく、だいたい0となる様です。

  • 作成日、 更新日

そのフォルダが作成された日時と中身などが更新された日時。

  • お気に入りか、ゴミ箱にあるかどうか

そのフォルダが、お気に入りにされているか、ゴミ箱に入れられているかどうか。


フォルダが持っている権限情報(共有情報)

Google ドライブにあるフォルダの閲覧や編集は、基本的にはご自身のみに割り当てられいます。
つまり、自分しかそのフォルダの閲覧や編集ができません。

しかし、そのフォルダを他者と共有して、自分一人だけでなく一緒に、閲覧や編集を行うことができます。

そのために、特定の人に、もしくは全員に、どの様なことができるか(閲覧のみか、編集もできるのかなど)を設定することで、共有できるのです。

つまり、フォルダに「誰」に、そして「どの様なこと(権限)」をできるのかを指定できるのです。

こちらも権限の指定の仕方や、権限がどうなっているかの確認などの具体的な説明は下の記事で紹介しております。


「誰」に権限を与えるか

「誰」に向けて共有するか考える際、大きく分けて「特定のユーザー(Gmail のアドレスを持っているユーザー)」と「それ以外」の二つになります。
さらに「それ以外」は、「全員」、「そのフォルダのリンクを知っている全員」、「自分と特定のユーザー以外誰にも」のいずれかになります。

少しわかりずらいかもしれませんが、少しだけ踏み込んでみてみましょう。

  • 特定のユーザー(Gmail のアドレスを持っているユーザー)

特定のユーザーに権限を与えることによって、そのユーザーとフォルダを共有できます。
ここで、特定のユーザーは Gmail のアドレスを持っていることが基本的な前提となります。
指定する方法は2つあり、Gmail のアドレスか、ユーザーの名前やアドレスなどの情報がまとまっている「User」クラスのオブジェクトで行えます。

  • それ以外(Gmail アドレスを持っていようとなかろうと)

指定した特定のユーザーたち以外にまとめて権限をあたえる際に指定します。
それ以外と言っても、その中でも3つに分かれます。
ここで、Gmail アドレスを持ってる持ってないは関係ありません。

<全員>

インターネットにつながっているどの人からでもアクセスできる。

<フォルダへのリンクを知っている全員>

例えば、そのフォルダへのリンクが貼ってあるメールを受け取った人など、そのフォルダへのリンクを知っている人が該当。

<誰にも与えない>

指定した特定のユーザー(Gmailアドレスを持っている)しか、フォルダにアクセスできない。

ここで、「誰に」を指定する際、特定のユーザーかそれ以外かと言うのではなく、特定のユーザーは特定のユーザーで指定して、それ以外はそれ以外の中から指定する形となります。

つまり例えば、特定のユーザーとして A さんと B さんを指定して、かつそれ以外では誰とも共有しないとした場合、結果として誰とも共有しないのではなく、A さんと B さんのみと共有することになります。
他の例では、特定のユーザーとして A さんと B さんを指定して、かつそれ以外では、フォルダへのリンクを知ってる人に指定した場合、A さんと B さんと、あとフォルダへのリンクを知っている人が共有する権限があります。
もちろん、特定のユーザーを指定せず、フォルダのリンクを知ってい人のみと指定することもできます。

何も指定しなければ、特定のユーザーもなく、誰とも共有しない状態になっています。

「どの様なこと(権限)」ができるか指定する

どの様なことができるか指定する際、4つに分類してあります。

  • 何もできない

何の権限も与えられていない為、アクセスもできません。

  • 閲覧

フォルダの中身の閲覧のみができます。

  • 編集

フォルダの中身の閲覧と編集ができます。

  • 管理者

フォルダの中身の閲覧と編集に加えて、フォルダの権限の付与などの管理が行えます。

GoogleAppsScript でフォルダの管理

フォルダは、ファイルやフォルダを持つだけでなく、GoogleAppsScript を使って、ファイルやフォルダを取得したり、作成したりすることができます。

ここでは、簡単に「Folder」クラスのオブジェクトで何ができるか紹介します。

なお、さらに詳しく説明を下の記事で紹介しています。

フォルダが持っているファイルやフォルダを取得する

あるフォルダにある、フォルダやファイルを探し、新たな Folder クラスか File クラスのオブジェクトとして取得できます。

ここで、注目したいのが、フォルダやファイルが探せるのは、そのフォルダの直下にあるもののみとなります。
つまり、そのフォルダにある、子フォルダの中のファイルなどは探し出せないことに注意しましょう。

フォルダ内に新たなファイル、フォルダ、ショートカットを作成する

あるフォルダに新しいフォルダ、ファイルやショートカットを作成することができます。

フォルダ自身を他のフォルダに移動させる

あるフォルダを他のフォルダの元に移動させることができます。
このとき、移動先のフォルダの ID を指定して移動させます。

この記事が気に入ったらサポートをしてみませんか?