Googleドライブ│フォルダ内のファイル数を集計する方法│GAS

リモートワークが日常になり、Googleドライブでのファイル共有や管理の機会が急増しました。

しかし、Googleドライブではフォルダ内に何ファイルあるかは標準UIでは表示されません

「どのフォルダにどれだけデータが入っているのか?」

「整理されているか把握したい」

そんな場面で便利なのが、Google Apps Script(GAS)です。

この記事では、GASを使ってフォルダ内のファイル数を調べる2つの方法をご紹介します。

目次

方法1:1フォルダ直下のファイル数だけカウントする

最もシンプルなスクリプトはこちら。指定フォルダ直下にあるファイル数のみをカウントします。

Google Apps Script(GAS)

コード:

function myFunction() {
  var folder = DriveApp.getFolderById("フォルダID"); // 対象フォルダのID
  var contents = folder.getFiles();
  var i = 0;
  while(contents.hasNext()) {
    contents.next();
    i++;
  }
  Logger.log("このフォルダ内のファイル数は " + i + " です。");
}

フォルダIDはURLから取得可能:

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

方法2:サブフォルダを含めてすべてのファイル数を集計

さらに実践的なのがこちらの方法。親フォルダ配下のすべてのサブフォルダを再帰的に探索し、ファイル数をカウントします。

手順:

  1. 新しいスプレッドシートを作成
  2. メニューから「ツール > スクリプトエディタ」を開く
  3. 以下のスクリプトを貼り付け、実行

コード:

function myFunction() {
  var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  objSpreadsheet.insertSheet("ファイル数", 0);
  var sheet = objSpreadsheet.getSheets()[0];
  var key = "親フォルダのID"; // フォルダIDを指定
  var rootFolder = DriveApp.getFolderById(key);
  var folderlist = [[rootFolder.getName(), key]];

  // 再帰的にフォルダを展開
  for (var i = 0; i < folderlist.length; i++) {
    var subFolders = DriveApp.getFolderById(folderlist[i][1]).getFolders();
    while (subFolders.hasNext()) {
      var folder = subFolders.next();
      folderlist.push([folderlist[i][0] + " > " + folder.getName(), folder.getId()]);
    }
  }

  // ヘッダー
  sheet.clear();
  sheet.getRange(1, 1).setValue("フォルダ名");
  sheet.getRange(1, 2).setValue("ファイル数");

  // ファイル数をカウント
  for (var j = 0; j < folderlist.length; j++) {
    var folder = DriveApp.getFolderById(folderlist[j][1]);
    var files = folder.getFiles();
    var count = 0;
    while (files.hasNext()) {
      files.next();
      count++;
    }
    sheet.getRange(j + 2, 1).setValue(folderlist[j][0]);
    sheet.getRange(j + 2, 2).setValue(count);
  }
}

実行後の結果

スクリプト実行後、スプレッドシートに「ファイル数」という名前のシートが作成されます。

中には、以下のようにフォルダ階層とそれぞれのファイル数が一覧表示されます。

フォルダ名ファイル数
プロジェクト資料12
プロジェクト資料 > 議事録7
プロジェクト資料 > 契約書3

実際に使ってみた感想

試しに自分の「OLD」フォルダで試してみたところ、約2,800個ものファイルが格納されていることが判明。

Googleドライブでは視覚的にはわからないファイルの蓄積も、GASを使えば可視化できます。

まとめ

方法内容特徴
方法1DriveApp.getFiles()単一フォルダ内のファイル数だけ確認
方法2再帰的にフォルダ探索サブフォルダを含めたすべてのファイル数を確認

Googleドライブでファイルが増えてきたと感じたら、まずは可視化することが第一歩です。

スプレッドシート×GASで、誰でも無料でドライブ管理の見える化ができます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

WAZAの有料記事のサブスクリプションも開始しました。

目次