簡體   English   中英

確定同一遠程計算機上的2個UNC路徑是否在同一卷上

[英]Determine if 2 UNC paths on the same remote machine are on the same volume

如果提供給它的兩個UNC路徑位於同一卷上,則我正在處理具有特殊條件的服務。 但是,由於C#DriveInfo類不適用於UNC路徑,因此我還沒有找到一種確定方法。

例如:

\\\\ server \\ path_a駐留在驅動器A上

\\\\ server \\ path_b駐留在驅動器B上

是否有某種方法可以告訴\\\\ server \\ path_a和\\\\ server \\ path_b不在遠程同一驅動器上?

在C ++中,我將使用netenum share獲取遠程物理路徑,然后檢查它們是否在同一路徑上。 您可能在C#中可能也一樣

當然可以,但是您需要使用PInvoke調用位於NetAPI32庫中的WinAPI接口。 例如:

根據您的需要,您可以通過調用NetShareGetInfo獲得共享的SHARE_INFO_2結構,這將為您提供該共享的信息對象。 這里看看結構。 shi2_path屬性將為您提供包含驅動器的本地路徑。

MSDN文檔聲明有關該屬性的以下內容:

shi2_path

指向Unicode字符串的指針,該字符串指定共享資源的本地路徑。 對於磁盤,shi2_path是要共享的路徑。

請注意: 您將需要具有足夠的憑據才能獲取SHARE_INFO_2對象。

然后,當您獲得兩條路徑時,都可以執行以下操作(非常基本):

bool isDriveEqual = sharePath1[0] == sharePath2[0];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM