20859


`.NET
Framework`は長い間`zip`アーカイブに対応せず、[4.5になって対応](https://web.archive.org/web/20151011175756/http://blogs.msdn.com:80/b/japan_platform_sdkwindows_sdk_support_team_blog/archive/2012/03/27/net-
zip.aspx)しました。  
[System.IO.Compression](https://docs.microsoft.com/ja-
jp/dotnet/api/system.io.compression?view=netframework-4.5)という名前空間は、[4.0以前](https://docs.microsoft.com/ja-
jp/dotnet/api/system.io.compression?view=netframework-4.0)はさみしい状況でした。

この経緯には何か理由があるのでしょうか。MSにとって、技術的・政治的・特許ほか、大人の事情で実装しない理由があったのであれば、教えて下さい。非公開なのでしょうか。


CC BY-SA 4.0
2016-01-12T10:16:18.980
20857
2022-05-23T12:48:39.010
2022-05-23T12:48:39.010
4236
2238
question
.net
.NETが4.5になってzipアーカイブに対応した理由


.NET 4.5はWindows 8と同時期に開発されています。そしてWindows
8からエクスプローラーにてZIPファイルに含まれるファイル名のUnicode対応がされています。（ZIP仕様がUnicodeに対応したのは2006年。Windows
7ではこのフラグを無視してANSIコードと見なす。[KB2704299](https://support.microsoft.com/ja-
jp/kb/2704299)にてHotfixを提供。）

ここからは勝手な推測ですが、.NETではUnicode対応が必須なわけですが、いざUnicodeエンコーディングのZIPファイルを作成してもエクスプローラーで文字化けするので、この問題が解消されるのを待っていたというのも１つの要因かもしれません。

* * *

.NET 4.5以前は

  * J# Runtimeのjava.util.zip.ZipInputStreamを使ったり
  * DeflateStreamクラスに「このクラスは本来、.zip アーカイブとの間でファイルの追加や抽出を行うための機能を提供するものではありません。」と書かれていたり
  * System.IO.Packagingでzipファイルを扱えるのになぜpublicにしてくれないんだ

とかいろいろありましたね。


CC BY-SA 3.0
2016-01-12T10:39:19.707
20859
2016-01-12T10:48:35.597
2016-01-12T10:48:35.597
4236
4236
20857
answer


[開発チームのブログ](https://blogs.msdn.microsoft.com/bclteam/2010/07/29/more-on-zip-
in-net-richard-
lee/)によると、インターンのメンバーが配属期間で実現できる程度の機能をZipArchiveに実装したという旨の記述があります。また2007年の記事ですでにZIP対応予定が表明されていますので、人員の都合が付いたから低優先度の課題を片付けたというところではないでしょうか。


CC BY-SA 3.0
2016-01-12T15:01:17.510
20865
2016-01-12T15:32:07.410
2016-01-12T15:32:07.410
5750
5750
20857
answer