如果提供给它的两条UNC路径位于同一卷上,我正在处理具有特殊条件的服务。但是我还没有找到一种方法来确定这个,因为C#DriveInfo类不适用于UNC路径。
EX:
\\ server \ path_a驻留在驱动器A
上\\ server \ path_b驻留在驱动器B
上有没有办法告诉\\ server \ path_a和\\ server \ path_b不会远程驻留在同一个驱动器上?
答案 0 :(得分:0)
在c ++中,我会使用netenum share来获取远程物理路径,然后检查它们是否在同一条路径上。您可以在c#
中使用相同的内容答案 1 :(得分:0)
当然可以,但您需要使用PInvoke调用位于NetAPI32库中的WinAPI接口。例如:
根据您的需要,您可以通过调用NetShareGetInfo来获取共享的SHARE_INFO_2结构,这将为您提供共享的信息对象。看看结构here。 shi2_path 属性将为您提供包含驱动器的本地路径。
MSDN文档说明了有关该属性的以下内容:
shi2_path
指向指定本地路径的Unicode字符串的指针 共享资源。对于磁盘,shi2_path是要共享的路径。
请注意: 您需要有足够的凭据才能获取SHARE_INFO_2对象。
然后当你得到两条路径时,你可以做一些像(非常简陋)的事情:
bool isDriveEqual = sharePath1[0] == sharePath2[0];