【发布时间】:2021-02-06 07:08:17
【问题描述】:
有没有办法使用 C# ASP.NET Core 在不同的操作系统(主要是 Linux 和 Windows)上找到可用空间。
我找到了一种方法(使用 DriveInfo),通过将驱动器名称作为参数传递来获取可用空间。这在 Windows 上运行良好,但我也希望在 Linux 上也一样。
public static int CheckDiskSpace(string driveLetter)
{
DriveInfo drive = new DriveInfo(driveLetter);
var totalBytes = drive.TotalSize;
var freeBytes = drive.AvailableFreeSpace;
var freePercent = (int)((100 * freeBytes) / totalBytes);
return freePercent;
}
传递驱动器(C:/)如下:
var freespace = DriveDetails.CheckDiskSpace("C:/");
更新:这也适用于 Linux。
【问题讨论】:
-
您知道您的代码作为 ASP.NET Core 应用程序的一部分运行在服务器上而不是客户端上,对吗?所以你总是会得到大致相同的信息,也就是服务器的磁盘空间
-
我的问题标题被修改了,我需要在不同的操作系统上找到应用程序的可用磁盘空间
-
@johnny5 该副本甚至与这里所问的内容都不接近。 OP 想要当前运行的应用程序的路径,而不是源代码的路径。编辑不太合适
-
我的错误,但当前标题误导了这个问题与查找路径而不是磁盘空间有关
-
@johnny5,查找路径是问题的一部分,主要问题是查找磁盘空间。
标签: c# asp.net-core .net-core