我有一个使用新OneDrive API
的WP8.1应用。我使用提供的C#SDK,因此得到如下内容:
var dlStream = await Connection.DownloadStreamForItemAsync(mNode.ItemReference(),
StreamDownloadOptions.Default);
file = await folder.CreateFileAsync(fileName,
CreationCollisionOption.ReplaceExisting).AsTask();
fileStream = (await file.OpenAsync(FileAccessMode.ReadWrite)).AsStream();
var v=dlStream.CopyToAsync(tn.FileStream);
我还没有尝试过,但它似乎是正确的方法。我现在关注的是如何监控转移进度和状态?"
知道DownloadStreamForItemAsync方法是这样的:
response = await GetHttpResponseAsync(request);
var responseStream = await response.GetResponseStreamAsync();
我考虑过使用计时器,每秒检查一次流长度,但是
如果有替代方式,我不知道这是否是正确的方法
我不知道这是否可能不会为流创建一些跨线程错误
如何检测转移失败?
我猜其中一种方法是重写部分OneDrive SDK可移植项目,仅针对WinRT项目并使用Windows.Web对象而不是System.Net,但似乎是一些不确定结果的工作。
有任何帮助吗? :)
答案 0 :(得分:0)
您可以使用Live SDK
内的LiveConnectClient类,而不是将文件作为流下载并将其保存到文件中。
使用BackgroundDownloadAsync(string path, Uri downloadLocation)
方法下载文件
开始从Microsoft OneDrive下载文件到Windows Phone 隔离存储。 [仅限Windows Phone] 即使启动文件的应用程序,文件下载仍应继续 下载退出或暂停。
订阅BackgroundDownloadProgressChanged
活动
当文件从Microsoft OneDrive下载到Windows Phone隔离存储时,在不确定的时间升起。 [仅限Windows Phone]
希望它有所帮助!