UPD: नीचे देखें
मैंने इसके लिए एक साधारण स्क्रिप्ट लिखी। आप इसे यहां से चला सकते हैं: https://script.google.com/macros/s/AKfycbyUvNoXzBMBDE9pnHkLUltliGwjip5x09t3PeTY_1KXXO45F6iz/exec
(यदि यह बंद हो जाता है, तो इसे एक बार फिर से चलाएं, और यह उसी स्थान से जारी रहेगा जहां इसे छोड़ा गया था)
यह आपके ड्राइव की जड़ में दो फाइलें बनाएगा, एक प्रगति दिखाता है और स्क्रिप्ट पूरी होने के बाद हटा दिया जाता है। अन्य वह रिपोर्ट है जो सभी फ़ोल्डरों और आकारों को सूचीबद्ध करती है। यह इस तरह दिख रहा है।
या आप Google स्क्रिप्ट संपादक में कोड कॉपी और पेस्ट कर सकते हैं और वहां से "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: स्क्रिप्ट को अपडेट किया गया था ताकि अगर वह बहुत लंबा चले और उसे रोका जाए, तो बस उसे एक बार और चलाएं और जहां "लेफ्ट फोल्डर साइज ..." फाइल में संग्रहीत डेटा का उपयोग करते हुए इसे वहीं से फिर से शुरू करेंगे।