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