It looks like file operations (e.g. move, delete, create, etc.) do not flag the parent folder as dirty. Such a dirty folder needs to recalculate the sizes of the subfolders if it is visited the next time.
Example:
X:\a\b\
Currently you can navigate to 'X:\a' and the sizes of the subfolder 'b' is correctly calculated. Now you navigate to 'X:\a\b' and delete all files there and navigate back to 'X:\a' but the folder-size of 'b' is not refreshed and Dopus still shows the old (incorrect) size for 'X:\a\b', even if DOpus actually "knows" that the folder is empty.
Folder sizes are a snapshot of when they were calculated.
Making them "live" would require Opus to monitor the entire folder structure below any visible folder and process every change in it. That seems like a waste of resources (and code-complexity, potential bugs, etc.) given how folder sizes are typically used, as well as how quickly they can be recalculated (after the filesystem has already recently read the directory) if you need them to be refreshed.
No no, I'm not talking about making the calculation live (globally tracking all changes).
I just propose to let DOpus react on changes made by DOpus itself.
In other words, if DOpus changes files in a folder all the parent folders are flagged with a request to re-calculate the subfolder size when DOpus comes back to this folder (and automatic subfolder size calculation is enabled in the settings).
All this depends on the fact that DOpus caches the folder sizes when stepping upwards in a directory tree.
An easy fix for this problem is to introduce a preference option to forcly recalculate the child folder (coming from) on stepping upwards. In this case on stepping upwards the last visited child folder will always be re-calculated to reflect possible changes. I love this idea and it should be feasible to implement.
You can do that already. Change the Up button on your toolbar to run Go UP instead of Go UP BACK, and it will always read a fresh copy instead of using a cached copy.
Yes but it takes me around 20 seconds to get all folder sizes to be re-calculated on root level of my user data disk. I would like to use the cached copy (Go UP BACK) and to recalculate the child coming from only.
Example:
Go UP BACK
GetSizes NODESELECT
But this doesn't work since there is a progress dialog popping up all the time.
Ok thanks, than I would propose an argument to the "GetSizes" command to omit the progress dialog to provide the same behaviour for size calculation as the global update mechanism (to be enabled in the preferences).