2009-06-26 20 views
0

ファイルのバージョン属性を取得するにはどうすればよいですか?SharpZipLib〜ファイルバージョン

私は、「バージョン」小道具を試してみましたが、それは私のコードのすべてのファイルのために私に

を同じ番号を与える:

while (getNextEntry) 
{ 

    ZipEntry entry = inStream.GetNextEntry(); 

    getNextEntry = (entry != null); 

    if (getNextEntry) 
    { 
     string fileType = Path.GetExtension(entry.Name); 
     string version = "unavailable"; // entry.Version.ToString(); 
       // etc ... 
    } 
    } 

答えて

0

これは正しい動作です。私はSharpZipLibに精通していませんが、.zip形式では、フィールドバージョンには、この特定のファイル(またはこのファイルを作成したソフトウェアのバージョン)を抽出するために必要なPkZipソフトウェアのバージョンが含まれています。そして、通常、1つのツールで作成されたzipファイル全体が、同じフィールドになります。

また、zipのバージョンはファイルバージョンではなく、このファイルをパッケージ化したソフトウェアのバージョンです。

zip形式here(主な情報源、ZIP形式)について詳しく読むことができます。

0
+0

しかし、この時点で私はZipInputStreamを読んでいるだけです。これは、ファイルが解凍された*後には間違いなく機能します。 まだzipファイルに入っている間にファイルのバージョンを読み取ることはできませんか? – KevinDeus

0

zipエントリのバージョンは「抽出するのに必要なバージョン」であり、そのエントリを適切に抽出するには、解凍ツールがサポートする必要があるZIPスペックのバージョンを参照します。これは、zipを圧縮したツールのバージョンとは異なります。また、この数値は、通常、zipアーカイブのすべてのエントリで同じですが、これは必須ではありません。異なるエントリでは、異なる機能を有効にすることができます。最も一般的なバリエーションは、暗号化とzip64エンコーディングです。最初のエントリは暗号化されていなくてもよく、この場合、抽出に必要なバージョンは20になります。次のエントリはzip64拡張を使用することがあります。この場合、抽出に必要なバージョンは45になります。

数字は、ジップをパックまたはアンパックするツールまたはlibbraryをビルドするときに最も興味深いものです。 の場合は、ジップライブラリを使用しているので、気にする必要はありません。ライブラリはあなたのためにそれを世話する必要があります。

関連する問題