似乎有成爲具有與它們關聯的(控制面板,桌面)的GUID幾個虛擬文件夾 -什麼是所有知名的虛擬文件夾GUID?
:: {00021400-0000-0000-C000-000000000046} //桌面
凡大火這些定義?他們什麼時候使用?
我想要的是有一個字符串代表虛擬文件夾沒有任何歧義的方法。
例如,如果我要爲桌面創建PIDL,則顯示名稱會以「C:\ Users \ Steve \ Desktop」的形式返回。
那麼,這是真的 - 但它不是真正的正確的文件夾。我可以在資源管理器中導航到該文件夾,它包含桌面上的部分文件,而不是整個桌面。
我想要的是一種將位置編碼爲字符串的方式,該字符串將始終導航到虛擬桌面文件夾(具有所有內容的文件夾,而不僅僅是一些內容)。
有誰知道這種GUID的權威列表?或者我如何將給定的PIDL轉換爲一個?
我試過SHGetDisplayName(pidl,SHGDN_ *) - 桌面pidl的每個版本都給我一個簡短的「桌面」或「C:\ Users \ Steve \ Desktop」。 (顯然,我是在'steve'帳戶下登錄的)。
想法/評論/指針?
編輯:所以看來我可以使用下面給出的答案有一個已知的文件夾GUI列表。但有沒有人知道如何從PIDL轉換 - >已知的文件夾GUID?我假設我可以ParseDisplayName(「:: {guid}」)來獲取PIDL,但有沒有辦法獲得GUID?
編輯2:我仍然無法找到一種方式獲得GUID編程。但是,就我的目的而言,我記錄了我最初創建對象時使用的CSIDL_xxx,並將其寫出,然後&將其恢復,然後通過CSIDL創建PIDL,該CSIDL保留其正確的身份(即它不會不會降級到「C:\ Users \\ Desktop」,而是會生成一個真正指向虛擬桌面的PIDL。
對我來說,訣竅是始終使用CSIDL-> PIDL,永遠不要使用字符串之間。CSIDL-> PIDL-> string-> PIDL =退化爲非虛擬路徑。
感謝大家的幫助 - 我會繼續尋找是否有人發現更多關於該主題併發布它,我會有興趣!;)
有趣的問題。並且在vista/7中處理神模式文件夾的好運氣(http://www.downloadsquad.com/2010/01/03/stupid-windows-7-trick-unlock-the-secret-god-mode-folder/ ) – 2010-01-21 19:34:25
有趣的鏈接。它根本不影響我 - 但它很有趣:) – Mordachai 2010-01-21 20:10:15