Here's a feature I've been waiting for: Delete (Skip Locked). Here's how it works and was implemented by the XYplorer's author, Donald Lessau
:Menu File: added command "Delete (Skip Locked)"
Normally, when deleting multiple files and a locked file (a file currently used by any application) is met, the OS sits about 2 seconds doing nothing, and then you get a message that a file can't be deleted because it is in use, and finally the deleting stops at this point. All other files that are not in use aren't deleted. Very annoying, and you have surely experienced this when you wanted to clean up in your temp folder last time.
Well, "Delete (Skip Locked)" is the solution! It simply deletes everything that's not locked and does not contain anything locked. It takes the following two-step approach:
(1) Look for any locked files within the current selection (recursing any selected folders). Then delete all other (unlocked) files (if any).
(2) Look for any empty folders (where empty means: no *files* contained in the whole branch) within the current selection. Then delete those folders (if any).
In step (1), if any locked files are detected, you'll get a confirmation dialog where you can decide how to procede. In step (2), if any empty folders are detected, you'll get a confirmation dialog where you can decide how to procede.
I added these explicit dialogs for one reason: On top of them you'll get two more delete confirmation dialogs (unless you turned off delete confirmation in Configuration|Advanced), one for each step. These stem from the standard OS Delete API I am using. What you have to know is that these latter dialogs probably do not match your current selection, because:
(a) I pass only unlocked files to the API;
(b) I pass files from recursing any folders in your selection.
So, the bottom line is: you pay a small price for the fantastic "Delete (Skip Locked)", namely a slight delay due to the checking of the lockedness, and, the two-step operation with its dialogs, but you gain by never encountering that delayed action again.