單擊開始菜單中的「我的電腦」將返回GUID鏈接而不是直接鏈接。例如:如何使用Qt/C++將GUI轉換爲Windows上的路徑?
::{20B04FE1-3AEA-1069-A2D8-08012B30309D}
我怎樣才能將其轉換爲正常路徑,這樣我可以得到目錄和文件的列表與QDir
的幫助?
UPDATE
我沒有試圖讓驅動器的列表。這很容易與Qt完成。我只想知道用戶在開始菜單中點擊了我的電腦。 (我的應用程序可以替換Windows資源管理器)
單擊開始菜單中的「我的電腦」將返回GUID鏈接而不是直接鏈接。例如:如何使用Qt/C++將GUI轉換爲Windows上的路徑?
::{20B04FE1-3AEA-1069-A2D8-08012B30309D}
我怎樣才能將其轉換爲正常路徑,這樣我可以得到目錄和文件的列表與QDir
的幫助?
UPDATE
我沒有試圖讓驅動器的列表。這很容易與Qt完成。我只想知道用戶在開始菜單中點擊了我的電腦。 (我的應用程序可以替換Windows資源管理器)
您正在尋找Shell命名空間中的一個項目,而不是在文件系統中。
介紹Shell空間:
http://msdn.microsoft.com/en-us/library/windows/desktop/cc144090(v=vs.85).aspx
外殼顯示了不存在的文件很多事情,我的電腦是一個。桌面是另一個 - 外殼桌面是所有用戶桌面文件夾,個人桌面文件夾和其他一些像回收站一樣虛擬的其他項目的合併視圖。
要了解有關該項目的更多信息,您可以使用SHParseDisplayName
將名稱轉換爲ITEMIDLIST
。
如果您打算提供Explorer的替代品,祝您好運!
通常,用['CSIDL_DRIVES']調用['SHGetFolderPath'](http://msdn.microsoft.com/zh-cn/library/windows/desktop/bb762181%28v=vs.85%29.aspx) ](http://msdn.microsoft.com/en-us/library/windows/desktop/bb762494%28v=vs.85%29.aspx)作爲這種事情的第二個參數,但我不認爲'CSIDL_DRIVES'具有物理路徑表示。你想達到什麼目的? – ildjarn
@ildjarn,我已更新問題 – Alex
查找'SHITEMID' – Ben