Как именно вы распаковываете файлы? Вы используете командную строку или графический интерфейс? Вы перетаскиваете файлы или выбираете их и используете функцию извлечения? Вы используете контекстное меню расширения оболочки?
Если вы вводите папку назначения, а затем выбираете функцию извлечения или используете расширение оболочки, то они сначала не извлекаются во временную папку, они извлекаются непосредственно в место назначения.
Если вы выберите файлы в пользовательском интерфейсе и перетащите их в целевую папку, то они будут извлечены во временную папку.
Причина в том, как выбран пункт назначения. Если вы входите в целевую папку или используете пункт контекстного меню, то программа точно знает, куда ее нужно извлечь. Однако если вы просто перетаскиваете файлы, то из-за того, как работает функция перетаскивания OLE , программа не знает, где находится целевая папка. Другими словами, именно Explorer получает целевую папку, а не программу архивирования. В результате программа не может знать, где их извлечь, и поэтому просто извлекает их во временную папку, а затем Explorer перемещает их, как только это будет сделано. Вы можете ясно видеть это, извлекая большой файл, используя оба метода. Когда вы перетаскиваете его в папку, он извлекает, а затем вы видите стандартный диалог операций с файлами в Проводнике, перемещающий его в папку. Если вы укажете папку и нажмете «Извлечь», она будет извлечена, и дальнейшая обработка не производится.
Не стесняйтесь просматривать исходный код 7-Zip, чтобы увидеть, как обрабатывается местоположение извлечения.
Я научился этому нелегко несколько лет назад, когда хотел внедрить перетаскивание в программу, которую я писал.