Bagaimana tepatnya Anda mengekstraksi file? Apakah Anda menggunakan baris perintah atau GUI? Apakah Anda menyeret file atau memilihnya dan menggunakan fungsi ekstrak? Apakah Anda menggunakan menu konteks shell-extension?
Jika Anda memasukkan folder tujuan dan kemudian memilih fungsi ekstrak atau menggunakan ekstensi shell, maka mereka tidak mengekstrak ke folder sementara terlebih dahulu, mereka mengekstrak langsung ke tujuan.
Jika Anda memilih file di UI dan menariknya ke folder target, maka itu akan diekstraksi ke folder sementara.
Alasannya adalah bagaimana tujuan dipilih. Jika Anda memasukkan folder target atau menggunakan item menu konteks, maka program tahu persis di mana ia perlu mengekstraksi. Namun, jika Anda hanya menyeret file, maka karena cara fungsi drag-and-drop dari OLE , program tidak tahu di mana folder target berada. Dengan kata lain, itu adalah Exploreryang menerima folder target, bukan program pengarsipan. Akibatnya, program tidak dapat mengetahui di mana mengekstraknya, dan dengan demikian mengekstraknya ke folder temp, lalu Explorer memindahkannya begitu selesai. Anda dapat melihat ini dengan jelas dengan mengekstraksi file besar menggunakan kedua metode ini. Ketika Anda menyeretnya keluar ke folder, itu ekstrak, maka Anda melihat dialog operasi file standar Explorer memindahkannya ke folder. Jika Anda menentukan folder dan mengeklik Ekstrak, ia mengekstrak dan tidak ada proses lebih lanjut yang dilakukan.
Jangan ragu untuk membaca dengan teliti kode sumber untuk 7-Zip untuk melihat bagaimana lokasi ekstraksi ditangani.
Saya belajar ini dengan cara yang sulit beberapa tahun yang lalu ketika saya ingin menerapkan drag-and-drop dalam program yang saya tulis.