回答:
ファイルをどのくらい正確に抽出していますか?コマンドラインまたはGUIを使用していますか?ファイルをドラッグするか、選択して抽出機能を使用しますか?シェル拡張コンテキストメニューを使用していますか?
宛先フォルダーを入力してから抽出機能を選択するか、シェル拡張を使用すると、最初に一時フォルダーに抽出せず、宛先に直接抽出します。
あなたはUI内のファイルを選択した場合はドラッグ対象のフォルダに、それがされます一時フォルダに解凍します。
その理由は、宛先の選択方法にあります。ターゲットフォルダを入力するか、コンテキストメニュー項目を使用すると、プログラムは抽出先を正確に認識します。ただし、単にファイルをドラッグする場合、OLEのドラッグアンドドロップ機能の動作により、プログラムはターゲットフォルダーの場所を認識しません。つまり、エクスプローラーですアーカイブプログラムではなく、ターゲットフォルダを受け取ります。その結果、プログラムはそれらを抽出する場所を知ることができないため、単純に一時フォルダーに抽出し、それが完了するとExplorerはそれらを移動します。両方の方法を使用して大きなファイルを抽出することにより、これを明確に見ることができます。フォルダーにドラッグすると、抽出され、エクスプローラーの標準のファイル操作ダイアログがフォルダーに移動します。フォルダーを指定して「抽出」をクリックすると、フォルダーが抽出され、それ以上の処理は行われません。
7-Zipのソースコードを自由に読んで、抽出場所の処理方法を確認してください。
数年前、私が書いていたプログラムにドラッグアンドドロップを実装したかったときに、これを難しい方法で学びました。
圧縮解除のためのメモリ要件が最小限に抑えられるように行われます。
ファイルシステムを使用しなかった場合、メモリ内で解凍が行われます。メモリ不足の状態、または大きな圧縮ファイルの場合、これは遅かれ早かれ利用可能なメモリを使い果たし、メモリページングのプロセスを開始します。
これらの状況でのページングは、ファイルがまだ解凍されているため(およびページファイルが追加され続けるため)ファイルシステムを使用するよりもはるかに遅くなりますが、ファイルが解凍されているときにエラーがチェックされているため、多くの読み取り/書き込み操作。ページファイルに起こりうる最悪の事態。
編集:一時ディレクトリの使用に関しては、これは多くのオペレーティングシステムのガイドラインに従うためです。解凍に失敗した場合、操作を実行するプログラムがそれ自体をクリーンアップする保証はありません。たとえば、クラッシュした可能性があります。そのため、ターゲットディレクトリに残っているファイルはなく、オペレーティングシステムは、適切と判断したときに一時ファイルを破棄します。
理由は思っているより簡単です:多くのプログラムはファイルを%temp%に解凍します。これは、宛先ファイルシステムに十分なスペースがない可能性があるためです。
これで、ファイルシステムに十分なスペースがあるかもしれないことを知っているかもしれませんが、アプリケーションにはありません。そのファイルシステムがOSまたは別のアプリケーションによって使用されており、解凍中にいっぱいになった場合はどうなりますか?
開発者は、%temp%に「無制限」のスペースがあると仮定しますが、宛先にはありません。
7-zipまたはWinRARの開発者ではないため、ここでの私のコメントは単なる推測です。そうは言っても、すべてのファイルが完全である(つまり、zipが破損していない)ことを確認するには、一時スペースを使用してすべてをアンパックします。
アーカイブの開始時にファイルの作業を開始して、大きな圧縮ファイルを解凍することほど悪いことはありません。アーカイブの最後で何かが破損していることを知るためだけです。その時点で、すべてに対する自信を失います。
私の最後のコメントは、7-zipでこの動作を見たことを覚えていないということです。ここで右クリックして「展開」と言うと、通常、ファイルが展開されているときにアクセスできます。どこかに設定されていないことを再確認しましたか?