[b18 x64] Explorer delete method is using always

The behaviour described in the bug report is either by design, or would be far too complex/time-consuming to be changed

Moderators: white, Hacker, petermad, Stefan2

Post Reply
alexblade
Junior Member
Junior Member
Posts: 19
Joined: 2012-02-07, 09:24 UTC
Contact:

[b18 x64] Explorer delete method is using always

Post by *alexblade »

Win7x64
In the [Option - Copy\Delete - Use Explorer delete method] check box is disabled.

However TC is using this method always
Last edited by alexblade on 2012-02-07, 21:48 UTC, edited 1 time in total.
User avatar
gmandca
Junior Member
Junior Member
Posts: 2
Joined: 2011-09-21, 12:41 UTC

Post by *gmandca »

Hi,
in beta version this function is always enabled (on Vista and 7) because is a problem in Windows 8.
If you want it off, you must add to the wincmd.ini under "Win95Delete = 0"
the following line:

VistaDelete = 0
alexblade
Junior Member
Junior Member
Posts: 19
Joined: 2012-02-07, 09:24 UTC
Contact:

Post by *alexblade »

thank you but

however in the beta8-x64 (Win7 x64) this is behavior is not reproducible.

I can delete and "Explorer delete method" is not using.

Please fix in next build


PS: edit to beta8 not beta16, you are right.
Last edited by alexblade on 2012-02-08, 08:01 UTC, edited 2 times in total.
User avatar
karlchen
Power Member
Power Member
Posts: 4603
Joined: 2003-02-06, 22:23 UTC
Location: Germany

Post by *karlchen »

Hello, alexblade.

There seems to be some kind of misunderstanding.

The old delete method which was referred to as Explorer delete method and which was switched off or on by setting the wincmd.ini parameter Win9delete=0 or Win95delete=1 has been dead at minimum since Windows Vista.

As I am not 100% sure that the parameter will be ignored automatically on Windows Vista or higher, I have made it a habit to include the setting Win9delete=0 in the section [Configuration] for ages.

Starting with Windows Vista, Microsoft introduced a new problem when deleting a large number of files which became apparent when using the Total Commander standard delete mehtod: Windows will create one delete thread per file which it deletes. This causes high CPU usage and wastes a lot of RAM.

The way to work around it is by using the new Explorer delete method. As the term Explorer delete method had already been used to refer to the ancient Windows 95 delete method, and as the new Explorer delete method has been introduced in Windows Vista, the recommended new delete method now is called VistaDelete.

Starting with Total Commander 8.0ß7 Total Commander will automatically default to using the VistaDelete method, in case
+ it detects it is running on Windows Vista or newer
+ the parameter VistaDelete is absent from wincmd.ini
  • If you wish to force Total Commander to use the VistaDelete method on Vista or newer, put VistaDelete=1 in the section [Configuration] inside the file wincmd.ini.
  • If you wish to prevent Total Commander from using the VistaDelete method on Vista or newer, put VistaDelete=0 in the section [Configuration] inside the file wincmd.ini and live with the downside of doing so.
  • If there is no VistaDelete in wincmd.ini, then Total Commander 8.0ß10 and newer will use the VistaDelete method wherever possible.
  • VistaDelete is not available on Windows versions older than Vista.
This means that T.C. 8.0ß16 and T.C. 8.0ß18 follow the same logic with respect to VistaDelete. This behaviour is by design. And there is no bug which needs fixing.

Kind regards,
Karl
--
P.S.:
history.txt wrote:27.10.11 Release Total Commander 8.0 public beta 7 (32/64)
[...]
23.10.11 Added: Make VistaDelete=1 the default on Windows Vista or newer (32/64)
MX Linux 21.3 64-bit xfce, Total Commander 10.52 64-bit
The people of Alderaan keep on bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine.
The Prophet's Song
alexblade
Junior Member
Junior Member
Posts: 19
Joined: 2012-02-07, 09:24 UTC
Contact:

Post by *alexblade »

A lot of question

I guess you can forget about this habit :) because win95delete=0 by default.

This means that T.C. 8.0?16 and T.C. 8.0?18 follow the same logic with respect to VistaDelete. - you are right. I mean beta 8.


1) Why VistaDelete parameter is absent from wincmd.ini in the newest build if it was added from beta7 ?

2) "If there is no VistaDelete in wincmd.ini, then Total Commander 8.0b10 and newer will use the VistaDelete method wherever possible." - oh yes, I seem to have understood. I must have previously used an older version than beta10 and TC is use by default an older delete method, right ? Now I use beta 18 and TC is use by default an new delete method, right ?

3) WHY then
when [Option - Copy\Delete - Use Explorer delete method] checkbox is enabled then VistaDelete=1
when [Option - Copy\Delete - Use Explorer delete method] checkbox is disabled then VistaDelete=0
???

4) "when using the Total Commander standard delete mehtod: Windows will create one delete thread per file"
Is there a way to work around this is behavior ?
Because explorer method cannot handdle comments, has no "Skip all" and many more. It is very very uncomfortable.
User avatar
karlchen
Power Member
Power Member
Posts: 4603
Joined: 2003-02-06, 22:23 UTC
Location: Germany

Post by *karlchen »

Hello, alexblade.

The option Configuration => Options => Copy/Delete => [_] Use Explorer Delete Method only changes the value of the parameter Win95Delete. On no Windows version, you can switch VistaDelete on or off using this option.

[X] Use Explorer Delete Method => sets Win95Delete=1 in wincmd.ini
[_] Use Explorer Delete Method => sets Win95Delete=0 in wincmd.ini
The value of Win95Delete does not change the value of VistaDelete!

The configuration dialogues do not allow access to the VistaDelete parameter. There is no option to switch it on or off. The only way of changing the value of VistaDelete is by editing wincmd.ini directly and restarting Total Commander afterwards. :cry:

Only the programme author will be able to explain
  • Why Win95Delete can be switched on/off in the configuration dialogues, but VistaDelete cannot.
  • What is the relation between Win95Delete and VistaDelete on Windows versions where VistaDelete exists, i.e. on Vista and newer.
  • What T.C. will do if you enable both, Win95Delete and VistaDelete on Vista or newer.
Kind regards,
Karl
Last edited by karlchen on 2012-02-08, 10:46 UTC, edited 1 time in total.
MX Linux 21.3 64-bit xfce, Total Commander 10.52 64-bit
The people of Alderaan keep on bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine.
The Prophet's Song
User avatar
karlchen
Power Member
Power Member
Posts: 4603
Joined: 2003-02-06, 22:23 UTC
Location: Germany

Post by *karlchen »

Hello, alexblade.
1) Why VistaDelete parameter is absent from wincmd.ini in the newest build if it was added from beta7?
The parameter VistaDelete has existed much longer. It can be used with Total Commander 7.56a, too.
What has been changed in Total Commander 8.0 beta 7 is the default value for the parameter VistaDelete:
  • Up to Total Commander 8.0 beta 6, Total Commander assumed VistaDelete=0, i.e. do not use the VistaDelete method, if the parameter VistaDelete was not found in the file wincmd.ini section [Configuration].
  • Starting with Total Commander 8.0 beta 7, Total Commander assumes VistaDelete=1, i.e. use the VistaDelete method, if the parameter VistaDelete is not found in the file wincmd.ini section [Configuration].
  • If Total Commander finds the parameter VistaDelete in the file wincmd.ini section [Configuration], it will use the VistaDelete value set there.
I.e. the parameter VistaDelete does exist and does have a default value even if it is not mentioned explicitly in the file wincmd.ini section [Configuration].
Total Commander 8.0 beta 7 did not introduce VistaDelete. It changed its default value from 0 to 1.
2) [...] Now I use beta 18 and TC is use by default an new delete method, right ?
Correct.
3) WHY then
when [Option - Copy\Delete - Use Explorer delete method] checkbox is enabled then VistaDelete=1
when [Option - Copy\Delete - Use Explorer delete method] checkbox is disabled then VistaDelete=0 ???
This is incorrect. Please see my previous post: The option which you point to only changes the parameter Win95Delete. VistaDelete cannot be disabled or enabled through the configuration dialogue. You can only do so by editing wincmd.ini directly.
4) [...] Is there a way to work around this is behavior ?
The workaround is using the VistaDelete method.

Kind regards,
Karl
MX Linux 21.3 64-bit xfce, Total Commander 10.52 64-bit
The people of Alderaan keep on bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine.
The Prophet's Song
alexblade
Junior Member
Junior Member
Posts: 19
Joined: 2012-02-07, 09:24 UTC
Contact:

Post by *alexblade »

thank you for answer

"The workaround is using the VistaDelete method."
you mean if need "Skip all" and many more then switch VistaDelete=0
if no need "Skip all" and many more then switch VistaDelete=1

ok but if we switch VistaDelete=0 to have "Skip all" then Windows will create one delete thread per file which it deletes. This causes high CPU usage and wastes a lot of RAM.

and where's workaround :( ?
User avatar
Flint
Power Member
Power Member
Posts: 3487
Joined: 2003-10-27, 09:25 UTC
Location: Antalya, Turkey
Contact:

Post by *Flint »

alexblade wrote:and where's workaround ?
Ghisler cannot fix Microsoft Windows. It does not supply appropriate API, so there's nothing TC can do about it.

Oh, of course Ghisler could try to explore the undocumented structure of Recycle Bin and try to reproduce the Windows behaviour from scratch, but this way is very time- and effort-consuming, error-prone and subject to failing in the new Windows versions (or even with some official patches installed).
Flint's Homepage: Full TC Russification Package, VirtualDisk, NTFS Links, NoClose Replacer, and other stuff!
 
Using TC 10.52 / Win10 x64
Post Reply