一尘不染

如何确定映射驱动器的实际路径?

c#

如何确定映射驱动器的实际路径?

因此,如果我在名为“ Z”的计算机上具有映射驱动器,如何使用.NET确定映射文件夹的计算机和路径?

该代码可以假定它在具有映射驱动器的计算机上运行。

我查看了Path,Directory,FileInfo对象,但似乎找不到任何东西。

我还寻找了现有的问题,但找不到我想要的东西。


阅读 393

收藏
2020-05-19

共1个答案

一尘不染

以下是一些代码示例:

所有的魔力都源自Windows函数:

    [DllImport("mpr.dll", CharSet = CharSet.Unicode, SetLastError = true)]
    public static extern int WNetGetConnection(
        [MarshalAs(UnmanagedType.LPTStr)] string localName, 
        [MarshalAs(UnmanagedType.LPTStr)] StringBuilder remoteName, 
        ref int length);

调用示例:

var sb = new StringBuilder(512);
var size = sb.Capacity;
var error = Mpr.WNetGetConnection("Z:", sb, ref size);
if (error != 0)
    throw new Win32Exception(error, "WNetGetConnection failed");
 var networkpath = sb.ToString();
2020-05-19