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

时间:2010-03-16 14:50:20

标签: networking directory .net

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

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

3 个答案:

答案 0 :(得分:6)

                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
                }

答案 1 :(得分:1)

你可以从UNC检查开始。然后,如果它不是UNC路径,请为驱动器创建DriveInfo对象并检查DriveType

答案 2 :(得分:0)

从路径中的驱动器号中获取DriveInfo实例。它有一个DriveType属性,可以是:CDRom,固定,未知,网络,NoRootDirectory,Ram,可移动或未知