說我有兩個目錄路徑:確定目錄等價(Windows)中
C:\Shares\Apple\Orange
和
\\MACHINENAME\Apple\Orange
有沒有一種辦法(編程)確定它們是否指的是同一目錄?一般來說,如果不比較路徑,我可以確定兩個目錄引用是否相同?
說我有兩個目錄路徑:確定目錄等價(Windows)中
C:\Shares\Apple\Orange
和
\\MACHINENAME\Apple\Orange
有沒有一種辦法(編程)確定它們是否指的是同一目錄?一般來說,如果不比較路徑,我可以確定兩個目錄引用是否相同?
以下是您可以嘗試的方法。它可能會窒息一些東西。我沒有測試過它。與FILE_FLAG_BACKUP_SEMANTICS
每個目錄
呼叫CreateFile()
。
在兩個手柄上撥打GetFileInformationByHandle()
。
比較文件索引,卷序列號。
比較卷名稱。
你說得對,比較路徑是一個壞主意。符號鏈接,簡稱和驅動器號映射以這種方式得到了解決。
不,沒有從\\MACHINENAME
明確的帶外合作。在Windows上,SMB協議沒有公開獲取唯一標識基礎卷的GUID的方法。該協議甚至不保證您正在查看實際音量。
謝謝,這似乎是伎倆! – marijne 2009-11-16 15:42:54