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

Sql*_*yan 5 .net directory networking

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

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

Seb*_*Seb 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
                }
Run Code Online (Sandbox Code Playgroud)

  • Noce,但是"if(Path.IsPathRooted(di.FullName))"似乎是非常不必要的,因为FullName的使用正在返回一个有根路径. (2认同)