2011-06-28 33 views
1

System.IO.Packaging名前空間を使用してC#でファイルを解凍します。私はzipライブラリがあることを知っていますが、余分な依存関係を追加せずに同じことを達成できるかどうかを最初に探るでしょう。System.IO.Packagingを使用してC#でzipファイルを展開する

はここに私のコードです:

using (var fs = new FileStream(fn1, FileMode.Open)) { 
    using (var p = Package.Open(fs)) { 
     Console.WriteLine(p.GetRelationships().Count()); 
     Console.WriteLine(p.GetParts().Count()); 
    } 
} 
Console.Read(); 

私が見つけたzipファイルを使用して、私は0の関係と0の部分を取得します。私は間違って何をしていますか?

+0

'ZipPackage'は実際には任意のジッパーアーカイブを処理できません。そして、それが、クラスが「ZipArchive」ではなく「ZipPackage」と呼ばれる理由だと私は思う。おそらくBCLチームが実際に[APIで作業した](http://blogs.msdn.com/b/bclteam/archive/2010/06/28/)というフレームワークの将来のバージョンでは、適切な 'ZipArchive'実装が行われるでしょうwork-with-zip-files-in-net.aspx)を使用しています。 – Regent

答えて

1

明らかに、すべてのSystem.IO.Packagingファイルはzipファイルですが、すべてのzipファイルがSystem.IO.Packagingに準拠しているわけではありません。そのため、zipファイルの解凍には役に立たない。

+0

私はそれほど遠くに行きません。有用性は限られています。 –

関連する問題