Networking 检查文件夹是.NET中的本地资源还是网络资源

Networking 检查文件夹是.NET中的本地资源还是网络资源,networking,directory,.net,Networking,Directory,.net,有没有一种快速的方法来检查我的路径是在本地磁盘上还是在网络上的某个地方?我不能只是检查它是否是驱动器号vs.UNC,因为这样会错误地将映射的驱动器标识为本地驱动器。我假设它在DirectoryInfo对象中是一个布尔值,但似乎不是 我找到了执行此检查的经典VB代码(通过API),但到目前为止.NET没有找到任何代码。您可以从UNC检查开始。然后,如果它不是UNC路径,则为驱动器创建一个DriveInfo对象,并从路径中的驱动器号中检查DriveType,获取一个DriveInfo实例。它有一个D

有没有一种快速的方法来检查我的路径是在本地磁盘上还是在网络上的某个地方?我不能只是检查它是否是驱动器号vs.UNC,因为这样会错误地将映射的驱动器标识为本地驱动器。我假设它在DirectoryInfo对象中是一个布尔值,但似乎不是


我找到了执行此检查的经典VB代码(通过API),但到目前为止.NET没有找到任何代码。

您可以从UNC检查开始。然后,如果它不是UNC路径,则为驱动器创建一个
DriveInfo
对象,并从路径中的驱动器号中检查
DriveType
,获取一个DriveInfo实例。它有一个DriveType属性,可以是:CDRom、Fixed、Unknown、Network、NoRootDirectory、Ram、Removable或Unknown

Noce,但是“if(Path.IsPathRooted(di.FullName))”通常看起来是不必要的,因为FullName的使用本身就是返回一个根路径。
                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
                }