繁体   English   中英

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

[英]Get the drive letter from a path string or 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("</br>Drive Type : " + objDrive.Name);
        Response.Write("</br>Drive Type : " + objDrive.DriveType.ToString());
        Response.Write("</br>Available Free Space : " + objDrive.AvailableFreeSpace.ToString() + "(bytes)");
        Response.Write("</br>Drive Format : " + objDrive.DriveFormat);
        Response.Write("</br>Total Free Space : " + objDrive.TotalFreeSpace.ToString() + "(bytes)");
        Response.Write("</br>Total Size : " + objDrive.TotalSize.ToString() + "(bytes)");
        Response.Write("</br>Volume Label : " + objDrive.VolumeLabel);
        Response.Write("</br></br>");

    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM