The drag-and-drop algorithm has been changed


Staff member
The drag-and-drop operation has been a pain in the neck for the developers of quite a few archivers, including TC4Shell and 7-Zip. Because of the limitations imposed by Windows, whenever a 7-Zip user drags and drops any files from an archive, 7-Zip uses temporary files. That is, it extracts the files to a temporary folder, and then tells the receiver where they are located. As a result, more disk space is used, and file extraction takes more time (because 7-Zip extracts files from the archive to the temporary folder, and then copies them from that folder to the destination folder).

For a long time, TC4Shell used its own approach: It provided file streams instead of files to the receiver. On the minus side, file extraction took more time. On the plus side, no temporary files were created. Moreover, TC4Shell allowed the user to achieve the maximum file extraction speed by selecting the Extract command in the right-click menu. You can find that information in TC4Shell’s help system. But most users don’t know about the Extract command as they don’t bother using the help system. They just drag and drop files from archives, which means that file extraction is always slow! We decided that TC4Shell should switch to the approach preferred by the majority of the users, so we changed the drag-and-drop algorithm.

The latest version of TC4Shell uses temporary files, but with a twist: If the user holds down the Ctrl key during the drag-and-drop operation, TC4Shell will try to identify the destination folder (this approach only works with Explorer windows). If TC4Shell succeeds in that, it will extract the files from the archive directly to the destination directory without creating any temporary files. If TC4Shell fails to identify the destination folder, it will display a message prompting the user to repeat the drag-and-drop operation without holding down the Ctrl key; the temporary files will be deleted in about 15 minutes.

Hopefully, you will like the change.


New member
TC4Shell used its own approach: It provided file streams instead of files to the receiver.
No temporary files were created.
Wow, another unique TC4Shell feature is here.

Thank you very much for the detailed explanation, Denis.