我想使用 C# 访问计算机上逻辑驱动器上的信息。我应该如何做到这一点?谢谢!
leo
问问题
60837 次
6 回答
76
对于大多数信息,您可以使用DriveInfo类。
using System;
using System.IO;
class Info {
public static void Main() {
DriveInfo[] drives = DriveInfo.GetDrives();
foreach (DriveInfo drive in drives) {
//There are more attributes you can use.
//Check the MSDN link for a complete example.
Console.WriteLine(drive.Name);
if (drive.IsReady) Console.WriteLine(drive.TotalSize);
}
}
}
于 2009-01-05T09:27:49.280 回答
8
如果您想在本地计算机上获取单个/特定驱动器的信息。您可以使用DriveInfo类执行以下操作:
//C Drive Path, this is useful when you are about to find a Drive root from a Location Path.
string path = "C:\\Windows";
//Find its root directory i.e "C:\\"
string rootDir = Directory.GetDirectoryRoot(path);
//Get all information of Drive i.e C
DriveInfo driveInfo = new DriveInfo(rootDir); //you can pass Drive path here e.g DriveInfo("C:\\")
long availableFreeSpace = driveInfo.AvailableFreeSpace;
string driveFormat = driveInfo.DriveFormat;
string name = driveInfo.Name;
long totalSize = driveInfo.TotalSize;
于 2016-09-29T06:20:40.847 回答
6
没有驱动器号的已安装卷怎么办?
foreach( ManagementObject volume in
new ManagementObjectSearcher("Select * from Win32_Volume" ).Get())
{
if( volume["FreeSpace"] != null )
{
Console.WriteLine("{0} = {1} out of {2}",
volume["Name"],
ulong.Parse(volume["FreeSpace"].ToString()).ToString("#,##0"),
ulong.Parse(volume["Capacity"].ToString()).ToString("#,##0"));
}
}
于 2009-09-06T05:43:01.050 回答
5
使用 System.IO.DriveInfo 类 http://msdn.microsoft.com/en-us/library/system.io.driveinfo.aspx
于 2009-01-05T09:29:28.420 回答
3
检查DriveInfo类,看看它是否包含您需要的所有信息。
于 2009-01-05T09:28:19.497 回答
1
在 ASP .NET Core 3.1 中,如果您想获得在 windows 和 linux 上都可以运行的代码,您可以按如下方式获取驱动器:
var drives = DriveInfo
.GetDrives()
.Where(d => d.DriveType == DriveType.Fixed)
.Where(d => d.IsReady)
.ToArray();
如果你不同时应用这两个地方,如果你在 linux 中运行代码,你会得到很多驱动器(例如“/dev”、“/sys”、“/etc/hosts”等)。
这在开发应用程序以在 Linux Docker 容器中工作时特别有用。
于 2020-05-04T11:06:50.950 回答