从路径字符串或FileInfo获取驱动器号

这似乎是一个愚蠢的问题,所以这里是:

除了解析驱动器号的FileInfo.FullPath字符串,然后使用DriveInfo(“c”)等来查看是否有足够的空间来写入此文件。 有没有办法从FileInfo获取驱动器号?

FileInfo f = new FileInfo(path); string drive = Path.GetPathRoot(f.FullName); 

这将返回“C:\”。 这真的是唯一的另一种方式。

嗯,还有这个:

 FileInfo file = new FileInfo(path); DriveInfo drive = new DriveInfo(file.Directory.Root.FullName); 

嘿,为什么不扩展方法?

 public static DriveInfo GetDriveInfo(this FileInfo file) { return new DriveInfo(file.Directory.Root.FullName); } 

然后你可以这样做:

 DriveInfo drive = new FileInfo(path).GetDriveInfo(); 

一个小字符串解析没有错:-)

 FullPath.SubString(0,1); 

您可以使用以下代码获取系统中的所有驱动器:

 foreach (DriveInfo objDrive in DriveInfo.GetDrives()) { Response.Write("Drive Type : " + objDrive.Name); Response.Write("Drive Type : " + objDrive.DriveType.ToString()); Response.Write("Available Free Space : " + objDrive.AvailableFreeSpace.ToString() + "(bytes)"); Response.Write("Drive Format : " + objDrive.DriveFormat); Response.Write("Total Free Space : " + objDrive.TotalFreeSpace.ToString() + "(bytes)"); Response.Write("Total Size : " + objDrive.TotalSize.ToString() + "(bytes)"); Response.Write("Volume Label : " + objDrive.VolumeLabel); Response.Write(""); }