0

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

1 回答 1

3

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

鉴于同一个文件/文件夹可以位于多个文件夹中,我怀疑它是否会受到支持。

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

于 2013-10-14T15:03:05.667 回答