2012-11-19 22 views
1

我實現了從Windows PC到Android設備的文件傳輸,該設備與MTP連接到計算機。複製實現已準備就緒(我使用此示例:http://code.msdn.microsoft.com/windowsdesktop/Portable-Devices-COM-API-fd4a5f7d)。如何構建mtp設備的路徑(可在文件夾瀏覽對話框中使用)?

現在我想改進用戶界面,我想提供一個文件夾選擇對話框,用戶可以在其中選擇一個MTP設備文件夾,我將保存文件(CLOSID_FileOpenDialog與FOS_PICKFOLDERS工程很好)。請注意,簡單文件保存對話框不起作用,因爲您將從對話框中獲得錯誤信息:「您無法在此保存」。

文件夾瀏覽的結果將是類似:?
:: {20D04FE0-3AEA-1069-A2D8-08002B30309D} \\ \ USB#vid_04e8 & pid_6860 & MI_00#6 & 2296b879 0000# {6ac27878-a6fa-4155-BA85-f98f491d4f33} \ {SID- 10001,SECZ9519043CHOHB,12635222016} {01B8016B-0164-00F2-E100-55012C014001}

USB#vid_04e8 & pid_6860 & MI_00#6 & 2296b879 0000#{6ac27878-a6fa-4155-ba85-f98f491d4f33}
我知道這是設備,IPortableDeviceManager使用它作爲設備ID。

SID- {10001,SECZ9519043CHOHB,12635222016} \ {01B8016B-0164-00F2-E100-55012C014001}
這是關於設備的路徑。這些GUID是設備對象的WPD_OBJECT_PERSISTENT_UNIQUE_ID屬性。

有了這些信息,我可以選擇設備並找到設備中的文件夾,以便我可以進行復制。

我的問題是,我也想在我的設備上folderbrowsedialog選擇默認的目錄,我不能創建上提到的路徑。請注意,如果我將它作爲默認路徑,它將開始瀏覽正確的文件夾。

有問題的部分是開始GUID,我不能讓:
:: {20D04FE0-3AEA-1069-A2D8-08002B30309D}

我也看了到註冊表中。我發現此GUID只有一個條目:
HKEY_USERS \ S-1-5-21-2044730494-4069800027-1247311059-1000 \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ CLSID {20D04FE0-3AEA-1069-A2D8-08002B30309D } \的DefaultIcon
其價值是這樣的:
C:\ WINDOWS \ SYSTEM32 \ imageres.dll,-109
(CLSID子文件夾中含有較多的GUID,所以我找不到,這是正確的)

你有想法如何得到這個GUID是要能夠構建整個默認路徑?

回答

1

該GUID表示計算機的文件夾中,殼命名空間擴展爲MTP設備是一個計算機的文件夾委託。您可以使用此GUID作爲常數來構造解析名稱爲您的文件夾瀏覽器。

Regards, lisa

相關問題