0

为了对资源使用(即数据库存储)进行适当收费,我们需要知道客户文件的大小。有没有一种简单的方法来计算客户工作区的资源使用情况?

4

1 回答 1

2

如果您只想知道工作区中文件的大小,可以使用下面的函数,尽管总资源使用量可能要高得多。

计算文件大小——有用,但不接近总存储量。

public static int DocumentFileSizeMB(string path)
{
    var size = 0;

    var results = ContentQuery.Query(SafeQueries.TypeInTree, null, "File", path);
    if (results != null && results.Count > 0)
    {
        var longsize = results.Nodes.Sum(n => n.GetFullSize());
        size = (int)(longsize / 1000000);
    }

    return size;
}

要更好地了解存储空间资源,请在GetTreeSize()节点上调用 SenseNet 函数。但是,由于其他与节点大小计算相关但未存储在节点下方的内容,例如索引表、日志条目等,这并没有给出完整的资源使用情况。

一种更好的方法,但仍不能充分利用资源。

public static int NodeStorageSizeMB(string path)
{
    var size = 0;

    var node = Node.LoadNode(path);
    if (node != null)
    {
        size = (int)(node.GetTreeSize() / 1000000); // Use 10**6 as Mega, not 1024*1024, which is "mebibyte".
    }

    return size;
}
于 2018-04-24T15:27:40.900 回答