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のどのバージョンがより安定していますか?

7-Zipには現在、1つのメインバージョンがあります。

  • 7-Zip 9.20 - 7-Zip 9 (2009年から始まった)のリビジョン20

最新のベータバージョンは、以前のバージョンのいくつかのバグが修正されています。したがって、最新版のほうがより安定しているはずです。一般的には、最新のベータバージョンを使うのが無難です。

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

そのような操作は古いバージョンの7-Zipでは機能しません。最新版の7-Zipでは「solid」モードのアーカイブについて、すべての動作に対応しています。

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

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

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

一方で、たとえばWAVPack (WinZip)のような、7-Zipでサポートしていない方法でエンコードされたZIPアーカイブもあります。

7-Zipからエクスプローラへのドラッグ&ドロップでアーカイブを展開するとき、なぜテンポラリファイルを使うのですか?

7-Zipは、ドロップターゲットのフォルダパスがわからないからです。Windowsのエクスプローラだけが正しいドロップターゲットを知っています。そして、Windowsのエクスプローラは、ディスク上に展開されたファイル(ドラッグソース)を必要とします。そのため、7-Zipはアーカイブからテンポラリフォルダにファイルを展開し、そして7-ZipはWindowsのエクスプローラにそのテンポラリファイルをのパスを知らせます。それからWindowsのエクスプローラは、それらのファイルをドロップターゲットのフォルダにコピーします。

テンポラリファイルを使いたくない場合は、7-Zipの展開コマンドか、7-Zipから7-Zipへドラッグ&ドロップしてください。

コマンドラインバージョンは、なぜ拡張子なしのファイルを追加しないのでしょうか?

「*.*」のワイルドカードを使っているのではないでしょうか。7-ZipはOS側のワイルドカードマスクパーサーを使っていないので、「*.*」は拡張子のある任意のファイルとなります。つまり任意のファイルを処理するには、代わりに「*」を使うか、ワイルドカードを省略する必要があります。

なぜ「-r」オプションは予想どおりに機能しないのですか?

多くの場合、「-r」オプションは必要ありません。7-Zipは、「-r」オプションがなくてもサブフォルダまで圧縮できます。

Example 1:

  7z.exe a c:\a.7z "C:\Program Files"

すべてのサブフォルダも含め、「C:\Program Files」を完全に圧縮します。

Example 2:

  7z.exe a -r c:\a.7z "C:\Program Files"

C:\のサブフォルダ(たとえばC:\WINDOWS)から「Program Files」を検索し、圧縮します。

もし、なんらかの拡張子の付いたファイルのみを圧縮したい場合は、「-r」オプションを使ってください。

  7z a -r c:\a.zip c:\dir\*.txt 

c:\dir\フォルダとそのサブフォルダにある、すべての*.txtファイルを圧縮します。

圧縮ファイルの中でファイルのフルパスを保持するにはどのようにすればいいですか?

7-Zipはファイルの相対パスのみを(前置されるドライブレターなしで)保存します。一般に行われているように、カレントフォルダを、圧縮したいすべてのファイルを参照できるフォルダに変更して、相対パスを使ってください。

  cd /D C:\dir1\
  7z.exe a c:\a.7z file1.txt dir2\file2.txt

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

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

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

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

msiインストーラの場合:「/q INSTALLDIR="C:\Program Files\7-Zip"」というパラメータを使います。

開発者向け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) 2011 Igor Pavlov. SourceForge.JP Project translated.