Drive SDK获取文件夹大小

时间:2013-10-14 14:22:59

标签: google-drive-api

我在使用授权的获取请求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];
    }

1 个答案:

答案 0 :(得分:3)

您获取文件夹对象的大小,而不是其内容。 api不支持获取文件夹内容的大小。

鉴于相同的文件/文件夹可以在多个文件夹中,我怀疑它是否会得到支持。

您需要使用appengine任务队列递归计算它,例如。