【发布时间】:2012-11-27 20:26:54
【问题描述】:
我对 WinRT 开发平台有点陌生,它已经让我发疯了(我是一名长期的 .Net 开发人员,所有这些被删除的 API 都非常烦人) 我在压缩 Windows.Storage.ApplicationData.Current.TemporaryFolder 中存在的所有文件时遇到问题 这是我当前的代码(VB.Net,基于 MSDN 代码,“文件”是我将所有文件放入的 zip 文件):
Using zipMemoryStream As New MemoryStream()
Using zipArchive As New Compression.ZipArchive(zipMemoryStream, Compression.ZipArchiveMode.Create)
For Each fileToCompress As Windows.Storage.StorageFile In (Await Windows.Storage.ApplicationData.Current.TemporaryFolder.GetFilesAsync())
Dim buffer As Byte() = WindowsRuntimeBufferExtensions.ToArray(Await Windows.Storage.FileIO.ReadBufferAsync(fileToCompress))
Dim entry As ZipArchiveEntry = zipArchive.CreateEntry(fileToCompress.Name)
Using entryStream As Stream = entry.Open()
Await entryStream.WriteAsync(buffer, 0, buffer.Length)
End Using
Next
End Using
Using zipStream As Windows.Storage.Streams.IRandomAccessStream = Await file.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite)
Using outstream As Stream = zipStream.AsStreamForWrite()
Dim buffer As Byte() = zipMemoryStream.ToArray()
outstream.Write(buffer, 0, buffer.Length)
outstream.Flush()
End Using
End Using
End Using
它构建得很好,但是当我启动代码时,我遇到了异常: UnauthorizedAccessException :访问被拒绝。 (HRESULT 异常:0x80070005 (E_ACCESSDENIED)) 在线:WindowsRuntimeBufferExtensions.ToArray(blahblah... 我想知道有什么问题。有什么想法吗?
提前致谢!
【问题讨论】:
标签: vb.net microsoft-metro zip windows-runtime access-denied