我在使用授权的获取请求Files获取Files.list时使用'quotaBytedUsed'属性。
我正在将获得的长值转换为KB / MB / Gb的文件大小。
但是,获得的所有文件夹的大小为1 KB。此值不反映文件夹中所有内容的大小总和。
如何获得此总和(如果可能,无需向服务器提出任何额外请求)?
用于将'quotaBytesUsed'转换为文件大小的代码是
private string[] SizeSuffixes = new[] { "B", "KB", "MB", "GB", "TB" };
private string SizeConvert(long? fileSize)
{
if (!fileSize.HasValue)
return "";
var size = fileSize.Value;
if (size <= 1024)
{
return "1 KB";
}
var suffixIndex = 0;
while (size > 1024)
{
size = size / 1024;
suffixIndex++;
}
return size.ToString(CultureInfo.InvariantCulture.NumberFormat) + " " + SizeSuffixes[suffixIndex];
}
答案 0 :(得分:3)
您获取文件夹对象的大小,而不是其内容。 api不支持获取文件夹内容的大小。
鉴于相同的文件/文件夹可以在多个文件夹中,我怀疑它是否会得到支持。
您需要使用appengine任务队列递归计算它,例如。