2017-08-15 28 views
0

.NETコアライブラリのみを使用できるUWPアプリケーションで作業しています。私はzip/unzipツールを実装しようとしています。私はWindows.Storage.Compressionが標準のGZIP/ZIPファイル形式をサポートしているのか、いくつか質問がありますか?私はWindowsで作成したZIP iを抽出するためにいくつかのテストコードを書いていますが、0バイトの長さのファイルを返します。Windows.Storage.Compression圧縮フォルダの解凍

var sourceFilename = "test.zip"; 
     var sourceFile = await ApplicationData.Current.TemporaryFolder.GetFileAsync(sourceFilename); 

     var decompressedFilename = "test.xlsx"; // sourceFile.Name + ".decompressed"; 
     var decompressedFile = await ApplicationData.Current.TemporaryFolder.CreateFileAsync(decompressedFilename, CreationCollisionOption.GenerateUniqueName); 

     //Read the file stream 
     using (var compressedInput = await sourceFile.OpenSequentialReadAsync()) 
     using (var decompressor = new Decompressor(compressedInput)) 
     using (var decompressedOutput = await decompressedFile.OpenAsync(FileAccessMode.ReadWrite)) 
     { 
     var bytesDecompressed = await RandomAccessStream.CopyAsync(decompressor, decompressedOutput);  
     } 

前述のように、長さゼロのファイルを返します。

さらにこの質問には、system.windows.compressionをファイルのフォルダに使用して既存のzip(何百ものアイテムがあります)を抽出する方法を実際に開発したいと考えています。 (私はAndroidとIOSプラットフォームでうまく動作していますが、UWP 10でこの簡単な作業を行う方法はわかりません(Cordova UWP Windows 10の制限によりSystem.IO.Compression.ZipFileを使用できません)。

私はhttps://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/Compression/jsて働いている - ファイルのサンプルは、上記のどこから来たのですが、もう一度Windows 10または7Zで作られた.zipファイルを開くことができない

答えて

0

を更にこの質問に私は本当に既存のを抽出する方法を開発したいです。私はAndroidとIOSプラットフォームでうまく動作していますが、UWP 10でこの単純な作業を行う方法はわかりません(Thewindows.compressionを使って、何百ものアイテムを持っています)。システムはSystem.Iを使用できませんO.Compression.ZipFile - Cordova UWP Windows 10の制限に起因する)。

Cordova-plugin-zeepを使用すると、既存のzipファイルを抽出できます。または、Zip/Unzipロジック用にSystem.IO.Compression.ZipFilethis)のような独自のプラグインを作成することもできます。詳細は、Creating a Windows Plugin in C++ or managed codeを参照してください。

+0

UWP Cordova 7では、REMOTEモードのために.Net Coreのコードしか利用できないという印象を受けました。私はZipFileを使用するいくつかのモジュールを使用しようとしましたが、ライブラリが見つからないというライブラリエラーが発生しました。私は何が欠けていますか? –

関連する問題