私は 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 : Access denied. (Exception de HRESULT : 0x80070005 (E_ACCESSDENIED)) オンライン : WindowsRuntimeBufferExtensions.ToArray(blahblah... 何が問題なのか疑問に思っています。
前もって感謝します !