【问题标题】:Check whether a folder is a local or a network resource in .NET检查文件夹是 .NET 中的本地资源还是网络资源
【发布时间】:2011-01-28 03:51:23
【问题描述】:

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

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

【问题讨论】:

    标签: networking directory .net


    【解决方案1】:

    您可以从 UNC-check 开始。然后,如果不是 UNC 路径,则为驱动器创建一个DriveInfo 对象并检查DriveType

    【讨论】:

      【解决方案2】:

      从路径中的驱动器号,获取一个 DriveInfo 实例。这有一个 DriveType 属性,可以是:CDRom、Fixed、Unknown、Network、NoRootDirectory、Ram、Removable 或 Unknown

      【讨论】:

        【解决方案3】:
                        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
                        }
        

        【讨论】:

        • Noce,但一般来说“if (Path.IsPathRooted(di.FullName))”似乎完全没有必要,因为 FullName 的使用本身就是返回一个根路径。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-20
        • 2012-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多