Frequently Asked Questions (FAQ)

ユーザー向けFAQ

7-Zipをビジネスの場で利用できますか?

はい。7-Zipはフリーソフトウェアです。どのコンピュータでも利用できます。7-Zipのために、登録や支払いは必要ありません。

Windows 7やWindows Vistaの環境で、7-Zipにファイルの関連付けを行うにはどうすればいいですか?

7-Zip File Managerを管理者モードで起動させる必要があります。7-Zip File Managerのアイコンを右クリックして、「管理者として実行」をクリックしてください。これで起動すれば、ファイルの関連付けやそのほかのオプションを変更できます。

いまある圧縮ファイル(アーカイブ)に対して、追加や削除、更新ができないのはなぜですか?

いまのバージョンの7-Zipは、Solidオプションによって作成された.7zアーカイブに対して、いくつかの動作が利用できません。コマンドラインで「-ms=off」オプションを付ければ、Solidモードをオフにできます。7-Zipの最新ベータ版では、Solidモードのアーカイブについて、すべての動作に対応しています。

なぜコマンドラインでは、アーカイブに対し拡張子がないファイルを追加できないのですか?

*.*というワイルドカードを使っているのではないでしょうか? 7-ZipはOSのワイルドカードマスクパーサーを利用しないので、*.*は拡張子を持つファイルとして扱います。すべてのファイルを対象にするには、*を代わりに使用するか、ワイルドカードを使わないようにしてください。

なぜ7-ZipではいくつかのZIPアーカイブを開けないのですか?

ほとんどの問題は、そのアーカイブのヘッダーが間違っているためです。ほかのZIPプログラムは、間違ったヘッダーでもエラーを出力するだけで開いています。

もしそのようなアーカイブであったら、7-Zipの開発者に問い合わせないでください。その代りに、その間違ったヘッダーのアーカイブを作ったプログラムを特定し、その作者にZIPと互換がないことを教えてあげてください。

7-Zipでサポートしていない方式でエンコードされたZIPアーカイブもいくつかあります。サポートしていない方式:PPMd (WinZip)、WAVPack (WinZip)

32ビットのWindowsおいて、7-Zipは大きい辞書が使えないのですか?

32ビットのWindowsは、アプリケーションごとに2GBしか仮想メモリが割り当てられません。しかも、その2GBの領域は連続していないため(たとえばいくつかのDLLによって)、7-Zipは仮想メモリ上に1つの大きな連続領域を確保できません。64ビットWindowsであればこの制限はありません。そのため、大量の物理メモリさえあれば、Windows x64で任意の辞書を利用できます。

どのようにすると、7-Zipをサイレントモードでインストールできますか?

「/S」パラメータを使います。「/D=dir」パラメータを使うと、出力ディレクトリを指定できます。このオプションは大文字小文字を区別します。7-Zipは、NullsoftのNSIS installerを使っています。

開発者向けFAQ

Visual C++ 6.0で7-ZipやLZMA SDKをコンパイルすると、なぜリンクエラーが出るのですか?

コンパイルにはVisual C++ 6.0かそれ以上のバージョンに加え、microsoft.comのPlatform SDKを含むいくつかのファイルが必要です。

http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm or http://www.microsoft.com/msdownload/platformsdk/sdkupdate/

MSVCを使っている場合、SDKのディレクトリを「Include files」と「Library files」のディレクトリリストの先頭で指定してください。

最新のPlatform SDKはMSVC6と互換性がありません。そのため、MSVC6には、Windows Server 2003 PSDK (February 2003) を利用しなければなりません。

商用アプリケーションで7-ZipのEXEやDLLファイルを利用できますか?

はい。ただし、そのドキュメントに (1) それは7-Zipのプログラムの一部であり、(2)7-ZipはGNU LGPLのライセンスであることと、(3)www.7-zip.orgへリンクを張るなど、ソースコードの入手元を示す必要があります。

7zアーカイブへの対応を自分のアプリケーションに加えるにはどのようにすればいいでしょうか?

1つは、7z.dllもしくは7za.dll(sf.netからダウンロードできます)を使う方法です。7za.dllはCOMインターフェイスで動作します。ただし、オブジェクトの作成はスタンダードCOMインターフェイスではありません。ソースコードのCPP\7zip\UI\Client7zフォルダの中に簡単な例があります。完全な例は7-Zip自体です。7-ZipもこのDLLを使っています。WinRAR、PowerArchiverなど、そのほかのアプリケーションでも7za.dllの利用例はあります。

そのほかの方法としては、コマンドラインバージョンの7za.exeの利用があります。

7-Zipのソースコードを商用アプリケーションで利用できますか?

7-ZipのライセンスはGNU LGPLのため、以下のルールに従う必要があります。 要約すると、LGPLのコードの部分はLGPLのライセンスになります。そのため、7-Zipのコード修正や、7-Zipのコードからいくつかラッパーを作成し、DLLにコンパイルできます。一方で、その(修正や追加、作成したラッパーが含まれる)DLLのコードはLGPLかGPLのライセンスにする必要があります。そのほかのアプリケーションのコードは、任意のライセンスにすることができます。 このようにすることによって、ユーザーや開発者はLGPLのコードを修正したり、DLLにリコンパイルできるようになります。この考えがフリーソフトウェアです。詳しくは、http://www.gnu.org/を参照してください。また、LZMA SDKも参照してください。これには、ほかにもライブラリライセンスがあります。


Copyright (C) 2009 Igor Pavlov.