【发布时间】:2015-03-02 23:48:44
【问题描述】:
我正在尝试创建一个下载文件然后编辑该文件的应用程序。
我遇到的问题是,一旦下载了文件,它似乎并没有放开该文件,我可以将文件下载到其本地存储,我已经从 Iso 手动获取了文件,并且很好。如果我在下载文件后使用该应用程序继续,我会收到 System.UnauthorizedAccessException 错误,但如果我关闭并打开应用程序,然后只编辑保存在 iso 中的文件,它就可以工作,就像我说的那样,它仍在使用下载的东西文件。
public async void DownloadTrack(Uri SongUri)
{
var httpClient = new HttpClient();
var data = await httpClient.GetByteArrayAsync(SongUri);
var file = await ApplicationData.Current.LocalFolder.CreateFileAsync("Test.mp3", CreationCollisionOption.ReplaceExisting);
var targetStream = await file.OpenAsync(FileAccessMode.ReadWrite);
await targetStream.AsStreamForWrite().WriteAsync(data, 0, data.Length);
await targetStream.FlushAsync();
}
此代码可以很好地下载 mp3,因为我测试了下载文件。我已经看到代码以
结尾的示例targetStream.Close();
但它没有给我,有没有另一种方法来关闭下载 谢谢。
【问题讨论】:
-
如果你在连续的步骤中下载和处理文件,你为什么要这么异步呢?
-
我只是在使用我遇到的示例,因为我对 C# 还很陌生
-
TargetStream.Dispose();似乎在做这项工作。
-
方法
Close()(如果可用)通常是Dispose()的同义词。
标签: c# windows-phone-8.1 windows-8.1