Collection: update file size within

Hello.

when you have a collection of files,
if the size of these files change, how can you make the collection reflect the changes ?

In my case, I have resized pictures from a collection to reduce the size (KB), and they still show the original size.

I tried the ctrl+ L trick but no luck.

Thanks

Hello,

4 years later, I still have the same issue with collections.

I have the same issue with other information too, like "modified date" for instance.
I see the modified date from the day the file was added to the collection, and when I look at the properties I see the correct date (today for instance).

How can you update the file info in a collection ? (f5 doesn't help).

I hope I'll get a bit more feedback than 4 years ago about the same question.

Thanks

It should happen automatically, if Opus can see the change at all.

Does this happen even with a simple test collection? e.g. Create a new collection at the top-level (not nested), and add just one text file from your desktop to it, then edit the file. Does the size update after a second or two?

Under Preferences / Miscellaneous / Advanced, what are these set to? Is either set to a non-default value (it will be in bold if so)?

[ul][li]collection_change_delay[/li]
[li]no_external_change_notify[/li][/ul]

Changes to folders are not being detected has other suggestions which may be worth trying.

Do you have a lot of collections, nested collections, or collections containing tens of thousands of items, or anything like that?

it is a simple collection of files located on the network, no nested collection.
collection_change_delay is default (5000)
no_external_change_notify is default (false)

I have something interesting to add to this description.
I have set up an highlight for files modified within the last hour (following one of your great videos you used to publish for each new Dopus version, speaking about them, I miss them !!) .

Guess what, once I check the file properties within Dopus, then the file is highlighted in the collection, but the modified date column doesn't show the change at all.

I did another test, added a file from a network location, then if I edit and save the file from the collection, then the date doesn't change.
If I do the same from the lister displaying the remote folder, then the collection is updated.

I also tried to add a local file in the same collection (the files I add in collection are usually located on Windows network share):
I set a created and modified date in 2014.
then I added the file to the collection.
I edited the file from a remote computer (through d$ share) and the date and size were correctly updated within 1-2 seconds.

Does it help to understand where is the issue ?

Network folders explains it. Collections cache the details of network files and don't monitor them for changes, since it could be problematic to monitor every folder containing collection items over the network. (For local folders, we can monitor the whole system with a small overhead, but there's no provision in Windows to do that over a network.)

Updating the cached values is probably going to be a matter or removing & re-adding the items. That can be automated for a whole collection using DOpusRT: External Manipulation of File Collections, or could be done for just selected files via a script. (Of course, a script could also be written which does both, and refreshes the whole collection if nothing is selected.) Time permitting, I might be able to look at writing that, although I can't right at this minute.

Hi,

what about an option in Dopus to let us right click a collection and do "update files information" or something similar ?

or maybe a ctrl+F5 to force an update ?

Hello,

I'm still having this issue, and I even forgot I wrote a post about it :confused: I found my own post while searching for a solution :smiley:

Is there any new trick to force DO to refresh the files size in a collection ?
ctrl+F5 seems to be the best logical shortcut for this kind of situation.

Cheers

for now, I have created a quick and dirty button:

"C:\Program Files\GPSoftware\Directory Opus\dopusrt.exe" /col export /utf8 {sourcepath$} C:\Temp\CollTmp-Results.txt
"C:\Program Files\GPSoftware\Directory Opus\dopusrt.exe" /col import /utf8 /clear {sourcepath$} C:\Temp\CollTmp-Results.txt

I would have loved to find a condition to make this button available only if sourcepath is a collection.
I searched but couldn't find how to do it. Is it possible ?

Also, I would love to have way to do it without relying on an external file and risking to lose the collection if anything goes wrong (because of the /clear flag).
I know you can't add all user suggestions, but wouldn't it make sense to refresh the file properties if a user does a Refresh in a collection ? I would seem logical to me, after all this is the goal of a standard "Refresh", to get the current information.

thank you

Try a modifier like this:

@hideifpath:!coll*

many thanks, I spent my efforts with the modifier IF and I didn't see the hideifpath option.
Thanks to you, I have now found the disableifpath modifier too, which is perfect, until a real Refresh is added, without having to reconstruct the collection.

pretty please @Leo :slight_smile:

Here is a script that should do the trick by removing and adding the selected items. Maybe try with a copy of your collection first.


JScript
function OnInit(initData) {
    initData.name = 'RefreshCollection';
    initData.version = '2023-06-05';
    initData.url = 'https://resource.dopus.com/t/collection-update-file-size-within/12044';
    initData.desc = '';
    initData.default_enable = true;
    initData.min_version = '12.0';
}

function OnAddCommands(addCmdData) {
    var cmd = addCmdData.AddCommand();
    cmd.name = 'RefreshCollection';
    cmd.method = 'OnRefreshCollection';
    cmd.hide = false;
    cmd.icon = 'script';
}

function OnRefreshCollection(scriptCmdData) {
    var cmd = scriptCmdData.func.command;
    var tab = scriptCmdData.func.sourcetab;
    cmd.deselect = false;
    if (String(tab.path).substring(0, 5) != 'coll:') return;
    cmd.RunCommand('Delete REMOVECOLLECTION');
    cmd.SetDest(tab.path);
    cmd.RunCommand('Copy COPYTOCOLL=member');
    cmd.RunCommand('Select FROMSCRIPT');
}

Save CommandRefreshCollection.js.txt to

%appdata%\GPSoftware\Directory Opus\Script AddIns

Add the new command RefreshCollection to a button, hotkey, context menu, etc. like any built-in command.


How to use buttons and scripts from this forum

2 Likes