2012-06-22 39 views
1

我在SkyDrive下載過程中遇到了一些麻煩,希望你能幫助我。將大文件從Skydrive下載到Windows Phone 7

遵循標準的SkyDrive API &示例,我設置了瀏覽SkyDrive文件夾結構的頁面,讓用戶點擊文件,提示下載,並且一切正常。

我遇到麻煩的是當下載的文件很大時,我得到的OutOfMemoryException大概在100Mb左右。

丹尼斯在這裏說這個問題http://dotnet.dzone.com/articles/2-things-you-should-consider,但它涉及到直接的URL下載,而不是通過SkyDrive架構。

我試過從SkyDrive中提取網址,並直接下載,但沒有取得任何成功。

這裏是我正在使用的代碼 - 「item」對象是SkyDriveItem類型的,它迭代了文件夾內容並選擇了此文件。

LiveConnectClient downloadClient = new LiveConnectClient(App.Session); 
        try 
        { 
         downloadClient.DownloadCompleted += new EventHandler<LiveDownloadCompletedEventArgs>(downloadClient_DownloadCompleted); 
         downloadClient.DownloadProgressChanged += new EventHandler<LiveDownloadProgressChangedEventArgs>(downloadClient_DownloadProgressChanged); 
         downloadClient.DownloadAsync(item.ID + "/content", item); 

這將正常工作時,該文件不是太大,但如前所述,選擇一個大文件(> 100兆),並將它與內存不足的異常死亡。

任何指針?

在此先感謝

+0

你在用什麼下載? WebClient,BackgroundTransferRequest等? – Jon

+0

嗨,喬恩,我已經更新了問題以顯示我使用過的代碼。它是標準的SkyDrive對象,並且在文件較小時效果很好。 –

+1

我不知道他們是否有一個下載大小限制,但假設他們這樣做,那麼你可以得到該文件的URL並使用範圍值與WebRequest的部分下載它,我會認爲它會工作。 – Jon

回答

2

解決 - 雖然我從來沒有能夠使用downloadClient.DownloadAsync()方法來下載大文件,通過定期與downloadClient.getAsync(播放),並使用預認證網址流式下載器可以做到這一點。

相關問題