2009-11-13 24 views
1

說我有兩個目錄路徑:確定目錄等價(Windows)中

C:\Shares\Apple\Orange

\\MACHINENAME\Apple\Orange

有沒有一種辦法(編程)確定它們是否指的是同一目錄?一般來說,如果不比較路徑,我可以確定兩個目錄引用是否相同?

回答

1

以下是您可以嘗試的方法。它可能會窒息一些東西。我沒有測試過它。與FILE_FLAG_BACKUP_SEMANTICS每個目錄

  1. 呼叫CreateFile()

  2. 在兩個手柄上撥打GetFileInformationByHandle()

  3. 比較文件索引,卷序列號。

  4. 致電GetVolumeInformationByHandle()

  5. 比較卷名稱。

你說得對,比較路徑是一個壞主意。符號鏈接,簡稱和驅動器號映射以這種方式得到了解決。

+0

謝謝,這似乎是伎倆! – marijne 2009-11-16 15:42:54

0

不,沒有從\\MACHINENAME明確的帶外合作。在Windows上,SMB協議沒有公開獲取唯一標識基礎卷的GUID的方法。該協議甚至不保證您正在查看實際音量。