web-dev-qa-db-ja.com

Googleドライブでフォルダーサイズを表示する方法

Googleドライブでは、Sort分割ボタンを使用し、Quota Usedを選択して、そこにある各ファイルのサイズを表示できます。

ただし、フォルダーのサイズは表示されません。

Googleドライブでフォルダを管理するための基本的な要件だと思います。サブフォルダーとファイルでいっぱいのフォルダーがあり、各ファイルのサイズを再帰的に合計することはできません。

このフォルダーを削除するかどうかを決定する必要があります。しかし、事前にサイズを知る必要があります。

フォルダーがどれだけのボリュームを使用したかを確認する方法はありますか?

92
Saeed Neamati

私はこのWebアプリケーションを見つけました。 http://gdrivefoldersize.appspot.com/ まだ非常にシンプルですが、概要を説明するのに適しています。

29
Nicolas Jolet

フォルダーごとではありませんが、このかなりのヒントのおかげで、大きなファイルがある場所を見つけるのに最適です: サイズでGoogleドライブファイルを並べ替えて最大のファイルを見つけます

GDriveの左パネルでホバー Upgrade storage

where to click

今それをクリック i Driveの右側にあります。

showing biggest files これは、そのための直接リンクです。 https://drive.google.com/drive/quota

17
brasofilo

UPD:以下を参照

このための簡単なスクリプトを書きました。ここから実行できます: https://script.google.com/macros/s/AKfycbyUvNoXzBMBDE9pnHkLUltliGwjip5x09t3PeTY_1KoXO45F6iz/exec

(停止した場合は、もう一度実行するだけで、元の場所から続行されます)

ドライブのルートに2つのファイルを作成します。1つは進行状況を表示し、スクリプトが完了すると削除されます。その他は、すべてのフォルダーとサイズをリストするレポートです。このように見えます。 Google Drive folder sizes report

または、コードをコピーしてGoogle Scriptエディターに貼り付け、そこから「doGet()」関数を実行するだけです。

function doGet(){
CreateReportFile();
return ContentService.createTextOutput("Report file created in your Drive's root folder");
}

function CreateReportFile() {
  var reportContent = CreateReport();
  DriveApp.createFile('Folder Sizes Report.txt', reportContent);
}

function CreateReport(){
  var reportContent = "";
  var progressFileFound = DriveApp.getRootFolder().searchFiles("title contains 'Getting Folder Sizes,'");
  var progressFile;
  var report=[];
  if(progressFileFound.hasNext()) {
      progressFile = progressFileFound.next();
      var json = progressFile.getBlob().getDataAsString();
      try{
        report = JSON.parse(json);
      } catch(Exception) {
         DriveApp.removeFile(progressFile);
         progressFile = DriveApp.createFile("Getting Folder Sizes, 0 processed...", " ");
      }
    }
  else {
      progressFile = DriveApp.createFile("Getting Folder Sizes, 0 processed...", " ");
    }
  var f = DriveApp.getRootFolder();
  AddFolderToReport(report, f, "/", progressFile);
  DriveApp.removeFile(progressFile);
  reportContent += "TotalSize MB   FilesSize MB   Path \r\n";
  for(var i=0; i<report.length; i++)
    reportContent += Utilities.formatString("%12.2f ", (report[i].totalSize / (1024*1024))) + Utilities.formatString("%11.2f      ",(report[i].filesSize / (1024*1024))) + report[i].folderPath + "\r\n";
  return reportContent;
}

function AddFolderToReport(report, currentFolder, currentPath, progressFile){
  var report1 = [];
  for(var i=0; i<report.length; i++)
    if(report[i].folderPath == currentPath)
       return report[i].totalSize;

  var fChildren = currentFolder.getFolders();
  var totalSize = 0;
  while(fChildren.hasNext() && currentPath.length < 2000){
    var nextF = fChildren.next();
    totalSize += AddFolderToReport(report, nextF, currentPath + nextF.getName() + "/", progressFile);
  }
  var filesSize = 0;
  var files = currentFolder.getFiles();
  while(files.hasNext()){
    filesSize += files.next().getSize();
  }
  totalSize += filesSize;
  report.Push({folderPath: currentPath, filesSize: filesSize, totalSize: totalSize});
  progressFile.setName("Getting Folder Sizes, " + report.length + " processed...");
  progressFile.setContent(JSON.stringify(report));
  return totalSize;
}

UPD:スクリプトが更新され、実行時間が長すぎて停止した場合は、もう一度実行するだけで、「Getting Folder Sizes ...」ファイルに保存されたデータを使用して、元の場所から再開します。

10
alexkovelsky

残念ながら、答えはノーです。

このディスカッションを参照してください: http://productforums.google.com/forum/#!topic/drive/TVtw1_QA6fA

7
wisbucky

PCまたはMACにGoogleドライブがインストールされている場合は、Windowsエクスプローラー(PC)またはファインダー(MAC)を使用して、フォルダーサイズを簡単に確認します。 Webブラウザから実行する方法が見つかりませんでした。

2
mm32993

ここには(現在機能している)回答がないため、少し不便な回答を投稿しますが、少なくとも15 GB(Googleドライブが提供する無料のストレージ容量)未満であれば機能します。

新しいGoogleアカウントを作成し(これは非常に長いプロセスではありませんが、ありがたいことに)、そのアカウントとフォルダーを共有します。新しいアカウントで、共有フォルダーをコピーして、そのアカウントにもあるようにします。新しいGoogleアカウントには、使用したスト​​レージの量が表示されます。それがフォルダのサイズです。その情報を取得したら、フォルダ全体を削除できます。このプロセス全体は数分で完了します。

1
Revetahw