并没有真正找到一种简单的方法来做到这一点,但主要是从 Orchard 框架中复制的。您将需要以下内容:
private FileSystemStorageProvider _filesystemProvider;
private ShellSettings _settings;
然后您需要定义站点存储路径:
var mediaPath = HostingEnvironment.IsHosted
? HostingEnvironment.MapPath("~/Media/") ?? ""
: Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Media");
storagePath = Path.Combine(mediaPath, _settings.Name);
最后,这是我计算特定文件夹(在本例中为租户/站点的根媒体文件夹)的存储空间的函数:
public double GetSiteStorage()
{
var folders = _filesystemProvider.ListFolders(storagePath);
long totalSize = 0;
foreach (var folder in folders)
{
totalSize += folder.GetSize();
}
return (totalSize / 1024 / 1024);
}
这将为使用的 MB 返回一个双精度值。希望这可以帮助某人:)