C# 确定同一远程计算机上的2个UNC路径是否位于同一卷上

C# 确定同一远程计算机上的2个UNC路径是否位于同一卷上,c#,unc,driveinfo,C#,Unc,Driveinfo,如果给定给它的两个UNC路径位于同一卷上,我正在处理一个具有特殊条件的服务。但是,我还没有找到一种方法来确定这一点,因为C#DriveInfo类不适用于UNC路径 例: \\服务器\路径a位于驱动器a上 \\服务器\路径\u b位于驱动器b上 有没有方法告诉我们\Server \PATSURA和\Server \PATHEB不在同一个驱动器上远程驻留? < P> C++中,我将使用NETEnUM共享来获取远程物理路径,然后检查它们是否在同一路径上。您可能也可以在c#中使用相同的方法,当然可以,但

如果给定给它的两个UNC路径位于同一卷上,我正在处理一个具有特殊条件的服务。但是,我还没有找到一种方法来确定这一点,因为C#DriveInfo类不适用于UNC路径

例:

\\服务器\路径a位于驱动器a上

\\服务器\路径\u b位于驱动器b上


有没有方法告诉我们\Server \PATSURA和\Server \PATHEB不在同一个驱动器上远程驻留?

< P> C++中,我将使用NETEnUM共享来获取远程物理路径,然后检查它们是否在同一路径上。您可能也可以在c#

中使用相同的方法,当然可以,但您需要使用PInvoke调用NetAPI32库中的WinAPI接口。例如:

根据您的需要,您可以通过调用获取共享的SHARE\u INFO\u 2结构,这将为您提供共享的INFO对象。看看这个结构。shi2_path属性将为您提供包含驱动器的本地路径

MSDN文档说明了有关该属性的以下内容:

shi2_路径

指向指定本地路径的Unicode字符串的指针 共享资源。对于磁盘,shi2_路径是要共享的路径

请注意:您需要有足够的凭据才能获取共享信息2对象

然后,当您获得两条路径时,您可以执行以下操作(非常基本):


好吧,这不可能。我同意@Julie的说法——要么不可能,要么不可靠。当
\\server\path\u a
\\192.168.12.12\path\u a
指向同一个文件夹时,您将如何处理这种情况?您可能会接近。可能不是你想要的。
bool isDriveEqual = sharePath1[0] == sharePath2[0];