3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Google Apps Script (GAS) で、GoogleDrive上の指定フォルダからファイル一覧を取得する

Last updated at Posted at 2020-06-21

概要

Google Apps Script(以下GAS)でGoogleDriveの特定フォルダのファイル一覧を取得します。
フォルダの指定には、 フォルダIDフォルダ名 でアクセスする方法があります。

フォルダIDでファイル一覧を取得

フォルダIDとは

フォルダIDとは、GoogleDriveで該当フォルダを表示した際にURL部分に表示されるIDのことです。
https://drive.google.com/drive/u/0/folders/ 以下の部分

image.png

コード

DriveApp.getFolderById にフォルダIDを指定して、folderを取得します。
取得したフォルダの getFiles() メソッドでファイル一覧を取得します。

DriveApp.getFolderById(folderID);

ファイル情報はイテレーターで取得する形となるので、 hasNext() でファイルの存在を確認しながら next() でファイルの実態を取得します。

ファイル名は getName() で取得できます。
ファイルIDを取得したい場合は getId() メソッドを利用します。

function myFunccton() {
  
  let folderID = "XXXXXXXXXX"
  let folder = DriveApp.getFolderById(folderID);
  let files = folder.getFiles();
  
  while(files.hasNext()) {
    file = files.next();
    console.log(`[${file.getName()}]${file.getId()}`);
  }
  
}

ちなみに文字列部分をバッククォートで囲んでおくと、 ${} を利用して、変数や関数の戻り値を文字出力することができます。

結果

ログに以下のような一覧が表示されます。
(ID部分隠してます)

image.png

フォルダ名でファイル一覧を取得

DriveApp.getFoldersByName を使うと、フォルダ名を指定してフォルダを取得することもできます。
GoogleDrive上にある全ての同じフォルダ名を取得する形となるので、戻り値はフォルダイテレータとなります。
今回は、指定したフォルダ名がGoogleDriveに一つしかないと決め打ちした前提で、イテレータの最初のフォルダを取得してします。

DriveApp.getFoldersByName(folderName);

コード

コードは以下のとおりです。
結果はフォルダID指定の場合と同じなので省略します。

function myFunction() {
  
  let folderName = "SubFolder"
  
  // イテレータで取れるので1つ目を決め打ちで取得
  let folder = DriveApp.getFoldersByName(folderName).next();
  let files = folder.getFiles(); 
  
  while(files.hasNext()) {
    file = files.next();
    console.log(`[${file.getName()}]${file.getId()}`);
  }
  
}

注意点

GoogleDriveへのアクセスとなる為、初回実行時はアクセス承認を行う必要があります。
ちょっと手数が多いので、手続きのスクショを貼っておきます。

アクセス許可確認

2020-06-21 (5).png

該当Googleアカウントの選択

2020-06-21 (6).png

警告ダイアログ

詳細をクリック
2020-06-21 (7).png

詳細が表示されるので、 (安全ではないページ)に移動 をクリック
2020-06-21 (8).png

アクセスリクエストダイアログ

許可を押す
2020-06-21 (9).png

以上の手続きを済ませたあともう一度実行すると、普通に実行できるようになります。

参考情報

■ Google公式の DriveApp Api リファレンス
https://developers.google.com/apps-script/reference/drive/drive-app

■ Google Apps ScriptでGoogleドライブを操作する最も簡単なスクリプト
https://tonari-it.com/gas-google-drive-app/

3
5
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
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?