[英]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.