Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo


#1147 Add "smart extract" feature to menu


I noticed a feature request similar to this one before, but this uses a different solution. A lot of times when people pack an archive, they put a single folder in the root of the archive and then have everything inside that, but there are also many instances where they pack everything into the root of the archive. The problem is if you choose "Extract to ...\", then you have two folders inside of each other, but if you choose "Extract Here", then you end up with all the files right inside the root folder and you need to sort through them to determine which came from the archive and then manually place them in a sub-directory.

If you add this feature called "Smart Extract" to the menu, what it will do is it will check the archive and if it finds only one folder and no other files in the root of the archive, then it will simply call the method of the "Extract Here" menu. If it finds multiple files in the root of the archive, then it calls the "Extract to ...\" method. I am sure this would be extremely easy to implement as it would basically just call a method to check how many files are in the root and if it returns 1, then it does the "Extract Here", else "Extract to ...\".

I think it would be a really useful feature because I hate it when it just extracts everything and then I have to search through and either delete or move it to it's own folder. Like I said, I've seen a similar request for this feature in which the user asked for it to just warn you if it is going to extract X number of files to the root, but I think this is a much better solution because it won't bother the user with any messages and will solve the problem if they choose "Smart Extract" or something similar from the menu.

I hope you took the time to read this.



  • dos386

    1147 Add "smart extract" feature to menu

    What "menu" ? Anyway, this has been already discussed more than 1 time, and someone even offered a patch for this. Sure this should work in the commandline version too, not only "menu".

    Actually this is a fatal design flaw in most if not all existing multi-file legacy archive formats (ZIP, 7-ZIP, TAR, ...). The solution for ALL multi-file legacy archives is, indeed, ALWAYS to check whether there is a top-level directory defined in the archive and ALL files are inside, and if NOT, just create one from the archive name. Additional extract options in both cases would be "no top level directory" (even if archive has one) and "rename top level directory" (override the one from archive name or archive content).

    Another related useful feature besides extract and list:

    "archive statistic" :

    @ whether there is a top level directory with all files inside and it's name + length
    @ amount of files
    @ biggest and smallest file
    @ newest and oldest file
    @ longest path + name length (excl. top level)
    @ maximal directory depth (files in top level count as ZERO)

    Last edit: dos386 2013-04-04
  • +1

  • frank

    JFTR, a pointer to the older dupe [#1139], and happy XnViewing to dos386 ;-)



    Feature Requests: #1139