我在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兆),並將它與內存不足的異常死亡。
任何指針?
在此先感謝
你在用什麼下載? WebClient,BackgroundTransferRequest等? – Jon
嗨,喬恩,我已經更新了問題以顯示我使用過的代碼。它是標準的SkyDrive對象,並且在文件較小時效果很好。 –
我不知道他們是否有一個下載大小限制,但假設他們這樣做,那麼你可以得到該文件的URL並使用範圍值與WebRequest的部分下載它,我會認爲它會工作。 – Jon