2

ここでは、 dotnetzipを使用して Azure BLOB ディレクトリの内容を圧縮しようとしています。

これを行うために使用するコードは次のとおりです。zip ファイルは作成されていますが、破損しています。私のブロブ コンテナー 'myfiles' で、zip ファイル内の同じフォルダー構造を保持しながら、myMusic フォルダー内のすべてのファイルとフォルダーを読み取ることによって、"mymusic.zip" という名前の zip ファイルを作成したいと考えています。次のコードは zip ファイルを作成しますが、zip ファイルが破損しています。これを解決するための提案はありますか?

string ofurl = @"http://myxyzstorage.blob.core.windows.net/myfiles/mymusic";
            string ofBlob = @"http://myxyzstorage.blob.core.windows.net/myfiles";
          dBlob = new CloudBlob(blobClient.GetBlobReference(ofBlob));

            using (var zipFile = new ZipFile())
            {
                byte[] fileBytes = dBlob.DownloadByteArray();
                using (var fileStream = new MemoryStream(fileBytes))
                {
                    fileStream.Seek(0, SeekOrigin.Begin);
                    zipFile.AddEntry("myZipFiles"+".zip", fileBytes);                    }
                var sas = ofContainer.GetSharedAccessSignature(new SharedAccessPolicy()
                {
                    Permissions = SharedAccessPermissions.Write,
                 // SharedAccessExpiryTime = DateTime.UtcNow.AddSeconds(this.timeOutSeconds)
                });

                using (var zipStream = new MemoryStream())
                {
                    zipFile.Save(zipStream);
                    zipStream.Seek(0, SeekOrigin.Begin);
                    var blobRef = ofContainer.GetBlobReference(ofurl);
                    blobRef.UploadFromStream(zipStream);
                }

            }

ここで上記のコードを使用すると、生成された zip ファイル myzipfile.zip がブロブ内に表示されます ( http://myxyzstorage.blob.core.windows.net/myfiles/mymusic )。しかし、ダウンロードして解凍しようとすると、表示されますエラー メッセージ "圧縮された zip フォルダー "myzipfiles.zip" は無効です。zip ファイルが壊れているのはなぜですか? zip ファイルが壊れないようにする方法

4

0 に答える 0