[FEATURE REQUEST:] select duplicates in search result list!
Moderators: Hacker, petermad, Stefan2, white
- ghisler(Author)
- Site Admin
- Posts: 50824
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Wow, that would really be a very powerful solution, thanks for all the work you put into it! I'm still not 100% convinced: While it makes a lot of sense with only a few files, it would become very complex with hundreds or thousands of directories. A list of preferred directories wouldn't be very helpful in this case, and it would be difficult to define rules which would apply to all the different cases in these subdirs...
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
Thank you for your response and your interest.
Yes, indeed, I agree with you. With only a few directories (I guess it's what you meant, because even with a lot of files in a few directories, it's easy to sort the directories), it's easy to sort. But with hundreds of directories, it's a lot harder.
But I'm still convinced that the number of directories will be (in most cases) far smaller than the number of files, and so it will be less work, much safer, and a great help for a lot of users (maybe not 100% of users, but at least more than 50%).
Even if it's not easy in the case of so many directories, it's still easier than doing th job manually. Or at least, it's my opinion. What do you think?
I already thought about this problem, and had some ideas. Like:
- sorting in multiples steps (1st level directories, then some 2nd level directories THAT the user wants to sort also, ...)
- or trying to get ideas from classic sort algorithms
- or using a sort template based on "generic" names found in sub-directories
But I still didn't had time to think about a solution that seems to be OK. It could take some time, because there are so many cases to think about.
However, the only remaining problem is to find a way to quickly sort manually a big "tree" structure, isn't it? I think that it's not impossible to solve, and moreover someone may have thought about such problem. I guess that it's possible to find some solution on Internet. I'll search for this. Or does anyone already have a solution?
More later! Bye for now
Yes, indeed, I agree with you. With only a few directories (I guess it's what you meant, because even with a lot of files in a few directories, it's easy to sort the directories), it's easy to sort. But with hundreds of directories, it's a lot harder.
But I'm still convinced that the number of directories will be (in most cases) far smaller than the number of files, and so it will be less work, much safer, and a great help for a lot of users (maybe not 100% of users, but at least more than 50%).
Even if it's not easy in the case of so many directories, it's still easier than doing th job manually. Or at least, it's my opinion. What do you think?
I already thought about this problem, and had some ideas. Like:
- sorting in multiples steps (1st level directories, then some 2nd level directories THAT the user wants to sort also, ...)
- or trying to get ideas from classic sort algorithms
- or using a sort template based on "generic" names found in sub-directories
But I still didn't had time to think about a solution that seems to be OK. It could take some time, because there are so many cases to think about.
However, the only remaining problem is to find a way to quickly sort manually a big "tree" structure, isn't it? I think that it's not impossible to solve, and moreover someone may have thought about such problem. I guess that it's possible to find some solution on Internet. I'll search for this. Or does anyone already have a solution?
More later! Bye for now

- Rein de Jong
- Senior Member
- Posts: 394
- Joined: 2005-01-30, 20:26 UTC
- Location: NL
- Contact:



"sorting directories" dialog box
The idea is to assign a number to each directory. This number will represent(measure) the user's directory preference.
By default, all directories have the preference number '0' (null).
If many directories have the same level, we have a "group" of directories.
For example, at start, all the directories have the preference '0'. It means that all the directories are in the same group (the group '0').
Example:
We have a dialog box with the full list of directories that contain duplicates.
In the left column, we have the "current preference" (reminder: it's 0 by default).
The button [filter..] will apply a filter on the group on it's left. (There only one group now, so there only one [filter..] button.)
If we push on the button [filter..] then we have a new dialog box:
This box has 2 tabs allowing to group and sort directories. We choose the first tab called "GROUP".
We choose to create a "group of directories" (reminder: it means many directories with the same preference number). We select 3 directories "c:\bak", "c:\work\" and "c:\work\abc\".
To do select these 3 directories, we can use the TC traditional [+] with "*bak* *work*". Or we could use a regular expression like "^c.*\(bak|work)\". This allows to manage thousands of directories in a few seconds, at least if we can assume that the user had a minimum of organisation while naming/organising his directories.
Other examples: with this, you can manage also all sub-directories of "work" with "c:\work\*", or you can also manage also all directories ending with "work" using "*\work\", ...
Then we choose "split this group in 2 (selected above)" : this will create a NEW group just above the current group (it was the default "group preference" 0). The new group will have a "group preference" equals to '+1'.
Note: if there was already a "group preference" equals to '+1' then TC would set the new "group preference" to '+0.5' ( OR : firstly change the old group preference '+1' into '+2' , and secondly add the new "group preference" '+1')
When we push [OK] we get back to the previous dialog box :
There's now 2 groups, and 2 [filter..] buttons.
We apply a filter again, by clicking the second [filter..] button :
When we push [OK] we get back to the previous dialog box :
There's now 3 groups, and 3 [filter..] buttons.
And after some steps ...
If you click on the 2nd button [filter..] ( on the right of "c:\hobby", "c:\my_scanned_pictures" and "c:\notes" ) then you have :
This time, we choose the second TAB called "sort".
We can sort on "name", "date" or "size" (ascending/descending) and/or adjust the sort order with [up] [down].
With this functionality, the preference order is known, and so each directory has a different "preference number". Consequently, this will create as many groups as directories (in this example, 3 groups of 1 directory).
You could still sort the "group 0" by size descending, for example. This would help to select duplicated files that are in the smallest directories.
Done!
Of course, if the user leaves groups of directories (= same preference for directories in that group), TC will be unable to be unable to choose between 2 identical files in 2 directories of that group.
That's the reality, sometime it's impossible to say if a directory is better than another.
It's the role of the other "filters" to (un)select the remaining duplicates (Reminder: the "directory filter" described in this post is only 1 of the filters of the "selection tool", see previous posts.)
What do you think about this?
By default, all directories have the preference number '0' (null).
If many directories have the same level, we have a "group" of directories.
For example, at start, all the directories have the preference '0'. It means that all the directories are in the same group (the group '0').
Example:
We have a dialog box with the full list of directories that contain duplicates.
Code: Select all
|- Directories containing duplicates ------------------|
| |
| Directory groups : |
| |---------------------------------| |
| 0 | c:\bak | [filter..] |
| | c:\data_misc | |
| | c:\download | |
| | c:\hobby | |
| | c:\misc_data | |
| | c:\my_camera_pictures | |
| | c:\my_camera_videos | |
| | c:\my_scanned_pictures | |
| | c:\notes | |
| | c:\recyler | |
| | c:\temp | |
| | c:\temp\abc\ | |
| | c:\unsorted_data | |
| | c:\work | |
| | c:\work\abc\ | |
| |---------------------------------| |
| |
| [ Cancel ] [ OK ] |
|------------------------------------------------------|
The button [filter..] will apply a filter on the group on it's left. (There only one group now, so there only one [filter..] button.)
If we push on the button [filter..] then we have a new dialog box:
Code: Select all
|- Filter directories (group preference = 0) --------|
| |
| / *GROUP* \ / sort \ |
| |----------------------------------------------| |
| | | |
| | Select directories : | |
| | |---------------------------------| | |
| | | x c:\bak | [ + ] | |
| | | c:\data_misc | [ - ] | |
| | | c:\download | [ * ] | |
| | | c:\hobby | regex | |
| | | c:\misc_data | | |
| | | c:\misc_data\unsorted | | |
| | | c:\my_camera_pictures | | |
| | | c:\my_camera_videos | | |
| | | c:\my_scanned_pictures | | |
| | | c:\notes | | |
| | | c:\recyler | | |
| | | c:\temp | | |
| | | c:\temp\abc\ | | |
| | | c:\unsorted_data | | |
| | | x c:\work | | |
| | | x c:\work\abc\ | | |
| | |---------------------------------| | |
| | | |
| | [x] split this group in 2 (selected above) | |
| | [ ] split this group in 2 (selected down) | |
| | [ ] move into level [ levels listbox [v] ] | |
| | [ ] move into new level [ ] | |
| | after level [ levels listbox [v] ] | |
| | | |
| |----------------------------------------------| |
| |
| [ Cancel ] [ OK ] |
|----------------------------------------------------|
We choose to create a "group of directories" (reminder: it means many directories with the same preference number). We select 3 directories "c:\bak", "c:\work\" and "c:\work\abc\".
To do select these 3 directories, we can use the TC traditional [+] with "*bak* *work*". Or we could use a regular expression like "^c.*\(bak|work)\". This allows to manage thousands of directories in a few seconds, at least if we can assume that the user had a minimum of organisation while naming/organising his directories.
Other examples: with this, you can manage also all sub-directories of "work" with "c:\work\*", or you can also manage also all directories ending with "work" using "*\work\", ...
Then we choose "split this group in 2 (selected above)" : this will create a NEW group just above the current group (it was the default "group preference" 0). The new group will have a "group preference" equals to '+1'.
Note: if there was already a "group preference" equals to '+1' then TC would set the new "group preference" to '+0.5' ( OR : firstly change the old group preference '+1' into '+2' , and secondly add the new "group preference" '+1')
When we push [OK] we get back to the previous dialog box :
Code: Select all
|- Directories containing duplicates ------------------|
| |
| Directory groups : |
| |---------------------------------| |
| 1 | c:\work | [filter..] |
| | c:\work\abc\ | |
| | c:\bak | |
| |---------------------------------| |
| 0 | c:\data_misc | [filter..] |
| | c:\download | |
| | c:\hobby | |
| | c:\misc_data | |
| | c:\misc_data\unsorted | |
| | c:\my_camera_pictures | |
| | c:\my_camera_videos | |
| | c:\my_scanned_pictures | |
| | c:\notes | |
| | c:\recyler | |
| | c:\temp | |
| | c:\temp\abc\ | |
| | c:\unsorted_data | |
| |---------------------------------| |
| |
| [ Cancel ] [ OK ] |
|------------------------------------------------------|
We apply a filter again, by clicking the second [filter..] button :
Code: Select all
|- Filter directories (group preference = 0) --------|
| |
| / *GROUP* \ / sort \ |
| |----------------------------------------------| |
| | | |
| | Select directories : | |
| | |---------------------------------| | |
| | | c:\data_misc | [ + ] | |
| | | c:\download | [ - ] | |
| | | c:\hobby | [ * ] | |
| | | c:\misc_data | regex | |
| | | c:\misc_data\unsorted | | |
| | | c:\my_camera_pictures | | |
| | | c:\my_camera_videos | | |
| | | c:\my_scanned_pictures | | |
| | | c:\notes | | |
| | | x c:\recyler | | |
| | | x c:\temp | | |
| | | x c:\temp\abc\ | | |
| | | c:\unsorted_data | | |
| | |---------------------------------| | |
| | | |
| | [ ] split this group in 2 (selected above) | |
| | [ ] split this group in 2 (selected down) | |
| | [ ] move into level [ levels listbox [v] ] | |
| | [x] move into new level [ to_delete ] | |
| | after level [ 0:normal [v] ] | |
| | | |
| |----------------------------------------------| |
| |
| [ Cancel ] [ OK ] |
|----------------------------------------------------|
Code: Select all
|- Directories containing duplicates ------------------|
| |
| Directory groups : |
| |---------------------------------| |
| 1 | c:\work | [filter..] |
| | c:\work\abc\ | |
| | c:\bak | |
| |---------------------------------| |
| 0 | c:\data_misc | [filter..] |
| | c:\download | |
| | c:\hobby | |
| | c:\misc_data | |
| | c:\misc_data\unsorted | |
| | c:\my_camera_pictures | |
| | c:\my_camera_videos | |
| | c:\my_scanned_pictures | |
| | c:\notes | |
| | c:\unsorted_data | |
| |---------------------------------| |
| -1 | c:\recyler | [filter..] |
| | c:\temp | |
| | c:\temp\abc\ | |
| |---------------------------------| |
| |
| [ Cancel ] [ OK ] |
|------------------------------------------------------|
And after some steps ...
Code: Select all
|- Directories containing duplicates ------------------|
| |
| Directory groups : |
| |---------------------------------| |
| +3 | c:\work | [filter..] |
| | c:\work\abc\ | |
| | c:\bak | |
| |---------------------------------| |
| +2 | c:\my_camera_pictures | |
| | c:\my_camera_videos | |
| |---------------------------------| |
| +1 | c:\hobby | [filter..] |
| | c:\my_scanned_pictures | |
| | c:\notes | |
| |---------------------------------| |
| 0 | c:\data_misc | [filter..] |
| | c:\download | |
| | c:\misc_data | |
| | c:\misc_data\unsorted | |
| | c:\unsorted_data | |
| |---------------------------------| |
| -1 | c:\temp | [filter..] |
| | c:\temp\abc\ | |
| |---------------------------------| |
| -2 | c:\recyler | |
| |---------------------------------| |
| |
| [ Cancel ] [ OK ] |
|------------------------------------------------------|
Code: Select all
|- Filter directories (group preference = +1) -------|
| |
| / group \ / *SORT* \ |
| |----------------------------------------------| |
| | | |
| | Sort directories : | |
| | |----------------------------------------| | |
| | |_name_(v)___________|_date_____|_size___| | |
| | | | | | | |
| | | c:\hobby | 23/12/07 | 18751 | | |
| | | c:\my_scanned_pic..| 10/04/08 | 997671 | | |
| | | c:\notes | 09/04/08 | 72 | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | |----------------------------------------| | |
| | | |
| | Currently selected directory : [up] [down] | |
| | | |
| |----------------------------------------------| |
| |
| [ Cancel ] [ OK ] |
|----------------------------------------------------|
We can sort on "name", "date" or "size" (ascending/descending) and/or adjust the sort order with [up] [down].
With this functionality, the preference order is known, and so each directory has a different "preference number". Consequently, this will create as many groups as directories (in this example, 3 groups of 1 directory).
Code: Select all
|- Directories contining duplicates -------------------|
| |
| Directory groups : |
| |---------------------------------| |
| +5 | c:\work | [filter..] |
| | c:\work\abc\ | |
| | c:\bak | |
| |---------------------------------| |
| +4 | c:\my_camera_pictures | [filter..] |
| | c:\my_camera_videos | |
| |---------------------------------| |
| +3 | c:\hobby | |
| |---------------------------------| |
| +2 | c:\notes | |
| |---------------------------------| |
| +1 | c:\my_scanned_pictures | |
| |---------------------------------| |
| 0 | c:\data_misc | [filter..] |
| | c:\download | |
| | c:\misc_data | |
| | c:\misc_data\unsorted | |
| | c:\unsorted_data | |
| |---------------------------------| |
| -1 | c:\temp | [filter..] |
| | c:\temp\abc\ | |
| |---------------------------------| |
| -2 | c:\recyler | |
| |---------------------------------| |
| |
| [ Cancel ] [ OK ] |
|------------------------------------------------------|
Done!
Of course, if the user leaves groups of directories (= same preference for directories in that group), TC will be unable to be unable to choose between 2 identical files in 2 directories of that group.
That's the reality, sometime it's impossible to say if a directory is better than another.
It's the role of the other "filters" to (un)select the remaining duplicates (Reminder: the "directory filter" described in this post is only 1 of the filters of the "selection tool", see previous posts.)
What do you think about this?
Still no reply?
I don't understand why there's still no "quick selection tool" for the duplicated files list.
You've already made 90% of the job, but the list of duplicated files that you display is unusable without a tool to quickly (un)select files in the list.
This tool would transform TC in a really (or even more) indispensable tool !
I don't understand why there's still no "quick selection tool" for the duplicated files list.
You've already made 90% of the job, but the list of duplicated files that you display is unusable without a tool to quickly (un)select files in the list.
This tool would transform TC in a really (or even more) indispensable tool !

-
What is the status of this feature request? Many users have put forward suggestions. Has any of them been implemented during these almost 3 years? Or is there still no way to select duplicates?
Most of the TC users participating in this poll here http://ghisler.ch/board/viewtopic.php?t=18728 were hoping to see a solution one day, so I thought I'd politely bring up the issue again.
What is the status of this feature request? Many users have put forward suggestions. Has any of them been implemented during these almost 3 years? Or is there still no way to select duplicates?
Most of the TC users participating in this poll here http://ghisler.ch/board/viewtopic.php?t=18728 were hoping to see a solution one day, so I thought I'd politely bring up the issue again.
AllDup has an easy to use select feature
AllDup has an easy to use select feature, it allows sorting by directory name, and then deselecting first file and SELECTING ALL OTHER FILES 
http://www.allsync.biz/en_alldup.htm

http://www.allsync.biz/en_alldup.htm
Search (Alt-F7) and feed the found files listbox, no duplica
I have a simple question for Mr. Ghisler, the genius who wrote this holy tool.
I was already a user of the Dos-version from the Norton COmander.
But then came the Windows Commander, which got renamed to Total Commander.
The name is ok, but this tools is not "total".
But it is very very good.
- - -
Search with Alt-F7, feed the listbox with all results, BUT without douplicates ...
So, now my question:
Mr. Ghisler said that he dont program this option because he does not know which of the doublicates should be hidden.
If have a simple answer: Who cares!
Example: I want to make a VLC Player Play list, and use the TC for it.
I select (a special service for the users of the TC: *.avi *.flv *.mkv *.mp4 *.wmv *.3gp *.asf *.m4v *.mov *.mpeg *.mpg *.rm *.rmvb *.webm) all movie fomrats.
All what I want is to use this files passive. SO it is unimportant which file of the doubles are hidden.
- - - - - - - - - - - - - - -
Another Thank you to all of you (Your answers helped me many times):
I wrote a selection of exclusions in Google Images, that the most annoying Companies get excluded.
Just add this after the search word, please do not change the spaces.
-123rf -depositphotos -logos.co
-graphicsfactory -clipart-box -clipartclipart -picturesof -hitton -stock -colourbox
-dreamstime -fotosearch -fotolia -pinterest -clipartof -tattoopinners
-presentermedia -all-free-download -thinkstockphotos -gettyimages
-zoonar
Just copy and paste and the image results in Google Images will be nearly clean.
I was already a user of the Dos-version from the Norton COmander.
But then came the Windows Commander, which got renamed to Total Commander.
The name is ok, but this tools is not "total".
But it is very very good.
- - -
Search with Alt-F7, feed the listbox with all results, BUT without douplicates ...
So, now my question:
Mr. Ghisler said that he dont program this option because he does not know which of the doublicates should be hidden.
If have a simple answer: Who cares!
Example: I want to make a VLC Player Play list, and use the TC for it.
I select (a special service for the users of the TC: *.avi *.flv *.mkv *.mp4 *.wmv *.3gp *.asf *.m4v *.mov *.mpeg *.mpg *.rm *.rmvb *.webm) all movie fomrats.
All what I want is to use this files passive. SO it is unimportant which file of the doubles are hidden.
- - - - - - - - - - - - - - -
Another Thank you to all of you (Your answers helped me many times):
I wrote a selection of exclusions in Google Images, that the most annoying Companies get excluded.
Just add this after the search word, please do not change the spaces.
-123rf -depositphotos -logos.co
-graphicsfactory -clipart-box -clipartclipart -picturesof -hitton -stock -colourbox
-dreamstime -fotosearch -fotolia -pinterest -clipartof -tattoopinners
-presentermedia -all-free-download -thinkstockphotos -gettyimages
-zoonar
Just copy and paste and the image results in Google Images will be nearly clean.
Re: Search (Alt-F7) and feed the found files listbox, no dup
Hi FrankyBKK
I see your opinion, but I would say pros and cons are already discussed. If you add one of the discussed tools everything would be fine for you.
I can not find a question in your posting ...FrankyBkk wrote:I have a simple question for Mr. Ghisler...
...So, now my question:
Mr. Ghisler said that he dont program this option because he does not know which of the doublicates should be hidden....
I see your opinion, but I would say pros and cons are already discussed. If you add one of the discussed tools everything would be fine for you.
TC 10.xx / #266191
Win 10 x64
Win 10 x64