Windows phone 7 将大文件从Skydrive下载到Windows Phone 7

Windows phone 7 将大文件从Skydrive下载到Windows Phone 7,windows-phone-7,onedrive,Windows Phone 7,Onedrive,我在SkyDrive下载过程中遇到了一些问题,希望您能帮助我 按照标准的SkyDrive API和示例,我设置了一个页面,可以浏览SkyDrive文件夹结构,让用户单击文件,提示下载,并且一切正常 我遇到的问题是,当下载的文件很大时,我会抛出大约100Mb的OutOfMemoryException Dennis在这里谈到了这个问题,但它与直接URL下载有关,而不是通过SkyDrive体系结构 我尝试过从SkyDrive中提取URL,然后直接下载,但没有成功 下面是我正在使用的代码——“item”

我在SkyDrive下载过程中遇到了一些问题,希望您能帮助我

按照标准的SkyDrive API和示例,我设置了一个页面,可以浏览SkyDrive文件夹结构,让用户单击文件,提示下载,并且一切正常

我遇到的问题是,当下载的文件很大时,我会抛出大约100Mb的OutOfMemoryException

Dennis在这里谈到了这个问题,但它与直接URL下载有关,而不是通过SkyDrive体系结构

我尝试过从SkyDrive中提取URL,然后直接下载,但没有成功

下面是我正在使用的代码——“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);
LiveConnectClient downloadClient=新的LiveConnectClient(App.Session);
尝试
{
downloadClient.DownloadCompleted+=新事件处理程序(downloadClient\u DownloadCompleted);
downloadClient.DownloadProgressChanged+=新事件处理程序(downloadClient\u DownloadProgressChanged);
downloadClient.downloadsync(item.ID+“/content”,item);
当文件不太大时,这可以正常工作,但如前所述,选择一个大文件(>100Mb),它会因OutOfMemory异常而消失

有什么建议吗


提前感谢

解决了这个问题,因为我一直无法使用downloadClient.downloadsync()方法下载大文件,而是使用downloadClient.getAsync()方法通过常规流下载程序使用预先验证的URL就可以了。

你用什么来下载?WebClient、BackgroundTransferRequest等?嗨,Jon,我已经更新了问题以显示我使用的代码。这是标准SkyDrive对象,当文件较小时效果很好。我不知道他们是否有下载size limit但是假设他们这样做了,那么你可以获得文件的url,并使用范围值通过WebRequest部分下载它,我认为这会起作用。Jon,你能从Skydrive直接指向文件的url获得这个url吗?我遵循SDK文档,但无法获得代表文件的实际url-无论我传入什么参数或配置,它似乎总是加载HTML Skydrive查看器。我使用的是REST API,因此在获取FolderContents时,我会将URL作为参数。