【发布时间】:2011-01-28 03:51:23
【问题描述】:
有没有一种快速的方法来检查我的路径是在本地磁盘上还是在网络上的某个地方?我不能只检查它是否是驱动器号与 UNC,因为这会错误地将映射驱动器识别为本地驱动器。我以为它是 DirectoryInfo 对象中的布尔值,但似乎不是。
我找到了执行此检查的经典 VB 代码(通过 API),但到目前为止还没有用于 .NET。
【问题讨论】:
标签: networking directory .net
有没有一种快速的方法来检查我的路径是在本地磁盘上还是在网络上的某个地方?我不能只检查它是否是驱动器号与 UNC,因为这会错误地将映射驱动器识别为本地驱动器。我以为它是 DirectoryInfo 对象中的布尔值,但似乎不是。
我找到了执行此检查的经典 VB 代码(通过 API),但到目前为止还没有用于 .NET。
【问题讨论】:
标签: networking directory .net
您可以从 UNC-check 开始。然后,如果不是 UNC 路径,则为驱动器创建一个DriveInfo 对象并检查DriveType。
【讨论】:
从路径中的驱动器号,获取一个 DriveInfo 实例。这有一个 DriveType 属性,可以是:CDRom、Fixed、Unknown、Network、NoRootDirectory、Ram、Removable 或 Unknown
【讨论】:
System.IO.DirectoryInfo di;
if (System.IO.Path.IsPathRooted(di.FullName))
{
System.IO.DriveInfo drive = new System.IO.DriveInfo(System.IO.Path.GetPathRoot(di.FullName));
if (drive.DriveType == System.IO.DriveType.Network)
{
// do something
}
}
else // shouldn't be reached
{
// relative path => local
}
【讨论】: