C#下载和使用文件导致System.UnauthorizedAccessException

我正在尝试创建一个下载文件然后编辑此文件的应用程序。

我遇到的问题是,一旦文件被下载,它似乎没有放弃该文件,我可以将文件下载到其本地存储,我已经从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(); 

但它没有给我,有没有另一种方式来关闭下载谢谢。

而不是调用Close()Dispose()我真的很喜欢使用自动完成工作的。 所以你的方法看起来像这样:

 public async void DownloadTrack(Uri SongUri) { using (HttpClient httpClient = new HttpClient()) { var data = await httpClient.GetByteArrayAsync(SongUri); var file = await ApplicationData.Current.LocalFolder.CreateFileAsync("Test.mp3", CreationCollisionOption.ReplaceExisting); using (var targetStream = await file.OpenAsync(FileAccessMode.ReadWrite)) { await targetStream.AsStreamForWrite().WriteAsync(data, 0, data.Length); await targetStream.FlushAsync(); } } }