by chris millward » Sat Feb 20, 2016 8:12 pm
Sticking to the 'Replace' example
Open a folder with a large number of files - the more files the more obvious the time taken to search.
'Select All'. (include sub folders if necessary)
Go to 'replace' and start typing a string to search for. Immediately you will be aware of the length of time each letter takes.
The programme will have to search every file name for occurrence of the first letter and this takes a lot of time.
The second and subsequent letter seems to take the same amount of time, yet each search will have eliminated loads of file names.
It shouldn't be necessary to search any eliminated files again.
Note this doesn't work when deleting characters from the string, a full search is required each time. (most search boxes have an X to delete the entire string, this is quicker than highlighting and deleting which still incurs a one off time delay for some reason)
I presume each search will produce a table of pointers to each file name containing the first character. This table will then be used to search for the next character to speed up the search. Deleting could be sped up by creating an additional table for EACH character in the string, thus a deletion simply steps back to the previous table.
As stated a simple workaround is enter the search string first THEN 'select all'.
Similarly to delete or edit the string 'Deselect All ' first, enter the new string and 'Select All' again.
It is very nice to see the changes dynamically with a small selection of folders but with a large number it's not possible to see all the results anyway. Perhaps an option the defer searching to 'rename' with proper opportunities to view the results before proceeding (another thread sometime)