为了适当地为资源使用收费,即数据库存储,我们需要知道客户端文件的大小。有没有一种简单的方法来计算客户端工作区的资源使用情况?
答案 0 :(得分:1)
如果您只是想知道工作区中文件的大小,可以使用下面的功能,尽管总资源使用率可能要高得多。
计算文件大小 - 有用,但不接近总存储空间。
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;
}
要更好地了解存储空间资源,请在节点上调用SenseNet函数GetTreeSize()
。但是,由于与节点大小计算相关的其他内容,但未存储在节点下方,例如索引表,日志条目等,这并未提供全部资源使用。
更好的方法,但仍然没有完全的资源使用。
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;
}