Sort
拆分按钮,然后选择Quota Used
在此处显示每个文件的大小。 但是,文件夹大小未显示。
我想这实际上是管理Google云端硬盘中文件夹的基本要求。我有一个充满子文件夹和文件的文件夹,我无法递归总结每个文件的大小。
我需要决定是否删除此文件夹。但是我需要事先知道它的大小。
有没有办法查看一个文件夹占用了多少卷?
#1 楼
UPD:随着Google开始阻止未经验证的脚本,使用它的唯一方法是将源代码复制粘贴到脚本编辑器中。验证需要付出额外的努力,所以我还没有做。UPD2:如果您有很多文件,它将达到执行时间限制并停止;您将需要多次运行它(您也可以为此设置自动定时触发器)
我为此编写了一个简单的脚本。您可以从此处运行它:https://script.google.com/macros/s/AKfycbyUvNoXzBMBDE9pnHkLUltliGwjip5x09t3PeTY_1KoXO45F6iz/exec
(如果停止,只需再次运行,它将从该位置继续左侧)
它将在云端硬盘的根目录中创建两个文件,一个显示进度,并在脚本完成后被删除。其他是报告,其中列出了所有文件夹和大小。看起来像这样。
或者您可以将代码复制并粘贴到Google脚本编辑器中,然后从那里运行“ doGet()”函数:
function doGet(){
var progressFileCompletedFound = DriveApp.getRootFolder().searchFiles("title contains 'Folder Sizes Report Completed'");
if(progressFileCompletedFound.hasNext()) {
return ContentService.createTextOutput("Report file was already created in your Drive's root folder, exiting.");
}
CreateReportFile();
DriveApp.createFile("Folder Sizes Report Completed.txt", "You may safely delete this file.");
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:脚本已更新,因此,如果脚本运行时间太长而被停止,只需再次运行它,它就会使用存储在“获取文件夹大小...”文件中的数据从它的左边位置恢复。
评论
很棒的脚本,但是我无法通过链接或直接从scripts.google.com对其进行授权。同意权限后,我返回到登录进行授权。
–user5389726598465
19年1月27日,11:01
不知道为什么,我已经尝试了朋友的帐户,并且可以正常工作。您的帐户看起来像是通用问题,还是仅仅是浏览器缓存?尝试使用匿名窗口(Ctrl + Shift + N)
– alexkovelsky
19年1月28日在14:16
@jj。我已经更新了脚本,因此它现在可以从停止处恢复。只需运行几次。
– alexkovelsky
19年2月1日在23:30
脚本上的出色工作!我无法使用该链接,但能够将代码复制并粘贴到Google App脚本中并运行它。由于Google的超时限制,我不得不重新启动它几次,但最终终于成功了。谢谢!
–frakman1
19年3月11日在17:30
@ahorn是的,脚本会在“ /”路径(即“我的云端硬盘”)下查找每个文件和文件夹。您可以在“ /”下看到任何子文件夹的大小,但是“计算机”的路径是什么-我不知道。您可以尝试修改此行:var f = DriveApp.getRootFolder();告诉从哪里开始。
– alexkovelsky
19年5月3日在18:06
#2 楼
2020年更新现在,单击
n GB of nn GB used
会将我们带到云端硬盘上的最大文件列表:结束更新
不是这个文件夹,但是很容易找到大文件在哪里,这要归功于这个漂亮的帽子提示:按大小对Google Drive文件进行排序以找到最大的文件。
在GDrive左侧面板上,悬停升级存储:
现在单击Drive右侧的i,我们有了它:
这是它的直接链接:https://drive.google.com/drive/quota
评论
它只显示文件,不显示文件夹
– shareef
16-09-14在10:30
我还是投票支持你的答案谢谢
– shareef
17年5月6日在16:45
是的,仍然是有用的提示。 F *** Google严格的政策,即不让我们知道文件夹的大小
–美联储Zee
19-10-20在1:36
@ luca76,它仍然有效,您可以检查我的更新吗?
–brasofilo
4月23日19:04
#3 楼
不幸的是,答案是否定的。请参见以下讨论:
http://productforums.google.com/forum/#!topic/drive/TVtw1_QA6fA
评论
我认为这大概是答案,这取决于如何解释OP的问题-使用Google云端硬盘的网站?绝对没有但是最后,他问:“有没有办法查看一个文件夹占用了多少卷?”。好吧,以“任何方式”,是的。您可以使用GDrive API递归增加文件大小;您还可以使用此处其他答案中的脚本,第三方软件等。
–卡尔斯·阿尔科利亚
19/12/14的1:13
下载网站上的“业务”选项Google云端硬盘文件流将相当快地向您显示本地计算机上的文件夹大小。 i.imgur.com/7JuL3Jf.png
–雷·福斯(Ray Foss)
4月1日23:07
#4 楼
2020年9月更新:现在有一个Android应用程序可以为您执行此操作,称为存储分析器和磁盘使用情况,
它为您提供了整个文件夹级别的详细结构树,就像Windows上的WinDirStat或(在GNU / Linux上为KDirStat或在macOS上为Disk Inventory X)。
运行时是这样的:
如果您无权使用Android设备,有许多适用于台式机甚至浏览器内的Android仿真器(请谨慎使用,因为您将不得不在无法控制的系统上使用Google帐户登录。)
请注意:显然,此应用存在设计缺陷,在运行分析时,它必须始终处于前台(如果您的Google云端硬盘文件夹中包含很多内容,则可能需要一些时间。)
评论
我们需要所有文件夹大小
–saber tabatabaee yazdi
18/12/4在6:06
为了拥有这些文件,可能需要复制内容,但是如果有问题的父文件夹中有多个文件夹,则这是不可行的。
–ahorn
19年4月30日在4:30
@ahorn您可以在云端硬盘中复制包含子目录的文件夹。
– Revetahw说恢复Monica
19年4月30日在4:32
@ahorn Wow,你是对的
– Revetahw说恢复Monica
19年5月1日,3:24
@cregox哦,所以,即使您在过程中切换到另一个应用程序,此应用程序也会停止其处理吗?这很烦人,尽管我想我没有注意到,因为我的过程太快了,以至于我没有时间切换到另一个应用程序。我想一个不错的解决方案是在Android模拟器(或虚拟化的Android内置Android)上运行该应用程序,以便该应用程序认为它始终处于前台,即使您需要将Android设备用于其他用途正在处理中。这样长的处理时间是可以接受的。
– Revetahw说恢复Monica
9月6日19:51
#5 楼
您可以使用Python。该答案的灵感来自于阿迪亚(Aditya),因此请在此处提高他的答案。我在下面提供了改进的代码,该代码只能显示最大的文件夹。 (这是我第一次使用Python进行编码!)在Google Colab中,创建一个新笔记本,单击左侧边栏中的“文件”图标,然后单击“安装驱动器”。您需要对Google云端硬盘文件流进行身份验证才能访问您的Google帐户,并将身份验证令牌复制到Colab笔记本中。
然后运行以下代码:
import re
all = open("all.txt", "w")
! du -h /content/drive/My\ Drive/* >> all.txt
all.close()
GB = open("GB.txt", "w")
for line in open("all.txt", "r"):
if re.search("G\t", line):
GB.write(line)
print(line)
GB.close()
所有文件夹的大小都会保存在“ all.txt”中。请注意,
-h
选项(而不是-sh
)显示子文件夹。然后,"G\t"
是要搜索的字符串(大写G,后跟制表符),并打印该行。这样可以隔离至少1GB大的文件夹。 (您可以将"M\t"
用于兆字节大小的文件夹。)这些最大的文件夹存储在“ GB.txt”中。评论
我希望您能找到一种与@aditya共享赏金的方法-我收到了他们关于他们答案的电子邮件,他们说他们很高兴这可能有用...此外,快速进行python学习也很不错!问题... 1.在我的案例中,du花费了很长的时间(大约200gb),当然还有他的简单脚本。也许您可以改进python来解决这个问题,并且更加循序渐进。 2.跟随符号链接存在一个问题,该问题更难处理:如果跟随过多,则数字将是错误的。 3.理想情况下,我想查看配额使用情况。不同的野兽!
– Cregox
9月13日晚上10:41
最后,4.关于使用文件保持状态的非常有趣的主意...但是>>可能无法按预期工作,因为这是一个简单的追加,并且再次运行代码不会从其停止的地方继续,而是再次运行。我想再次遗产:非常感谢您的努力! as它确实是有用的(即使我仍在等待查看实际结果,我已经可以想象它会有多好)
– Cregox
9月13日晚上10:44
谢谢。我认为运行时间与Colab中的云计算能力有关。令我惊讶的是,两天前Aditya无法回答这个问题(请参阅特权页面)。我看不到这个问题的限制。赏金宽限期还剩6个小时,还有很多免费代表争夺战!我确实改进了他的代码建议,但是,将来的读者请支持Aditya的帖子。至少他说他对此感到满意。
–ahorn
9月13日10:52
通过“配额使用率”,您是在说占整个驱动器空间的百分比,还是在说获取最大的单个文件列表?
–ahorn
9月13日晚上10:56
到目前为止,我仍在清理驱动器,此脚本的效果非常好。由于存在所有缺陷,因此即使没有其他方法,也对我有极大的帮助!话虽这么说,我确实做了一些小的修改,以使查看结果更容易。我认为提议编辑会更容易。
– Cregox
12月16日21:37
#6 楼
如果您的PC或MAC上已安装Google云端硬盘,请使用Windows资源管理器(PC)或Finder(MAC)轻松检查文件夹大小。我找不到从Web浏览器执行此操作的方法。评论
我在PC上为Google驱动器选择的文件夹大于6 GB。但是谷歌驱动器网站说,它们只有3.7 GB(完全同步)。检查文件夹大小/不包含任何文件,将是一个很好的选择,因为我不相信所有文件都已同步!
–user56353
2014年1月5日,11:51
@ user56353 PC有时会报告所使用的磁盘空间。磁盘空间是按整个块分配的,例如大小为4k,如果文件只有1k,它仍会在磁盘上使用4k。成千上万的小文件可能会浪费大量的空间。 Google云端硬盘可能只会报告实际文件大小。此外,如果用户使用的是同一文件,则Google云端硬盘可能会压缩照片和视频,或者在用户之间删除重复的文件。检查实际文件大小与磁盘大小。 Windows 8.1在“文件属性”(ALT + ENTER)中均报告。
– Chloe
17年9月29日在17:20
在本例中,我们使用的是Drive File Stream,并且想要在将文件夹同步到本地计算机之前检查文件夹的大小。
–达斯汀·格雷厄姆(Dustin Graham)
19年3月11日在18:06
@ mm32993这个答案没有用,因为在我的情况下,我想检查一个大文件夹(最大80GB)正在占用的存储量而不同步它。
–ahorn
19年4月30日在4:37
@ahorn我想您错过了上下文。驱动器文件流不下载项目,因此我们看不到文件夹的完整大小。我们希望同步特定文件夹中的所有内容,以准备脱机工作,但在此之前我们无法查看文件夹的大小。 :)
–达斯汀·格雷厄姆(Dustin Graham)
19年4月30日在18:00
#7 楼
如果您使用Linux,请使用google-drive-ocamlfuse
软件包(在Alessandro Strada的PPA中)将您的Google Drive帐户作为计算机上的网络驱动器安装。注意:文件将不会下载(除非您打开它们),因此此方法不会占用您的大量数据。将文件夹层次结构及其大小保存为文本文件。我建议您只检查大于1GiB的文件夹,因为这样可以更轻松地找到最大的文件夹(以防您要减少磁盘空间):
cd "/home/username/Google-Drive"
tree --du -h | grep G]
> "tree.txt"
您可能想更详细地了解
.txt
文件的存储位置。注意:请耐心使用
tree
命令。如果您有很多存储空间,则需要一段时间。打印出文本文件,检查并享用!
评论
从我的角度来看,这很有希望,但是其他人提出了一个简单得多的解决方案:webapps.stackexchange.com/questions/146178/…
– Cregox
9月12日20:31
评论
我不确定为什么国防部不允许我回答这个问题,因为我有必要的代表,但我将提供评论:这不是确切的答案,因为它不是文件夹大小,但可以帮助您找到大文件。如果将鼠标悬停在Web应用程序屏幕左下方的配额上,它将显示您的配额和一个小的蓝色“ i”图标。单击该按钮,它将按照最大到最小的顺序对所有文件进行反向排序。希望这会有所帮助,并且令人讨厌的是Google没有提供实际的文件夹大小。@ChuckClaunch您有协会奖金。对于受保护的问题,必须在网站上获得10点声誉。这就是为什么您无法回答这个受保护的问题的原因。
要回答Chuck的问题,在一个论坛上做足够的工作即可赚取(IIRC)100积分,您将在加入的每个论坛中自动获得前100积分。这样,您可以回答问题。一旦知道了这一点,我就不再害怕去其他论坛。
Google云端硬盘文件流应用会告诉您google硬盘/团队硬盘文件夹的大小。您甚至不需要同步文件夹。在Mac上,只需在文件夹上“获取信息”,它将加载文件夹的完整大小
如果该Google云端硬盘已镜像到您的磁盘,则可以使用wiztree,windirstat ...之类的工具来快速查看所有文件夹和子文件夹的大小。