Collection feature

to lxp:
Thanks, but I don't know how to use this in Opus

I have a script for this that I will tidy up and publish.

to lxp:
Excuse me, could it have to do with "add custom column"? I've been browsing the documentation and creating custom "script add-in" commands ...

It would be great to see that script. I'm going to do a little more research on those functions.
The truth is that, although I have been using Opus since the times of the Amiga, I have no idea of the fantastic potential it holds. It's a shame, but I am absolutely useless for these things.

I don't think there's any way you could associate an item with a collection with its removable media label when the media is no longer there.

You'll find the script here. Maybe it's a step in the right direction :slight_smile:

Wow! I am impressed! :bowing_man:

I am not impressed! :sunglasses:

HI lxp, many thanks.
I apologize for replying so late.
Although I have absolutely no idea about javascript, I think I got the procedure.
In my case, the execution of robocopy stops when trying the $recycle.bin directory with access denied error.
I think that is easily solvable, but I think I should inform you of it.I repeat, thank you very much.
Please excuse me for the delay and my bad english

If you're not mixing contents from multiple USB drives together, once you add files and folders from a drive to a collection, why not just name the collection itself after the drive label?

I work with MANY USB drives... and have had to resort to using letters ABOVE H for drives that I want to have a semi-persistent drive letter and let the "unknown" drives fight things out for letters E, F and G.

But I generally name the drive labels with my preferred drive letter at the end (like USB_32G_O or some such).

Are you getting an error like this?

image

That's probably just a timing problem. Wait a bit and try again. Or delete the file manually.

If Robocopy itself fails I would need more details. Maybe I didn't get all parameters right.

One thing to keep in mind is Opus may verify the files in a collection still exist and remove the ones that don't. (I think it won't if the drive letter doesn't currently exist, but that won't be enough if the letter is being used by multiple USB sticks. I'm not 100% that's the rule either; this is from memory and it's a long time since I looked at what happens in detail.)

So this is a situation where collections may not work well, and creating zero-byte files or shortcuts or similar may be superior (which is what Lxp's robocopy command does).

(For me personally, I'd probably just list the contents of each USB stick to a CSV file using Tools > Print/Export Folder, but I guess it depends what you want to do with the list.)

Now I understand why you said that collections don't work well with external disks.
I take a LOT of photographs, which take up a lot of space, which is why I use several hard drives, and since I use the computers in my two homes (first and second homes), in the end it is difficult to change the drive letters. I use collections to classify those and also other files. For this reason I am interested in making the name of the disk appear in a file location in a collection. Obviously, the disks of the different computers have significant names.

No, it is a problem of accessing files that belonged to another user.
Clarification: I have several systems installed on the same computer, and although the username matches, obviously the ID is different, and being the NTFS file system, the problem is served.
Robocopy, according to its standard parameters, waits 30 seconds and retries, another 30" and retries, etc. So I said earlier that I think the solution is easy.

Me too. :slightly_smiling_face:
See above.
Anyway, many, many thanks for your comments and help.

One more thing:
It's not just about making a printed list of files, but working with them, editing them, moving them, etc., in short, the things that can be done from a file manager, and Opus is, from my point of view, by far the best file manager, THE file manager ... as it says on its website.

Hello again,
I'm still trying to add the drive/volume name to the file location information in a lister, which I intended in my request a few weeks ago.
I have already explained before that, despite the years I have been using DO, I am far from knowing even 10% of the power available in DO in terms of file management. So, for the past few weeks, I've been reading the manual, looking for some way to reach my goal, and have found the chapter "Adding a new Column from Shell Properties" in the part that explains "scripting / example scripts", and I've thought that it could be a valid formula to include in the lister, the name of the volume that contains the file in question, which is definitely what I'm looking for.
Here I am assuming that one of the shell properties is precisely the name of the disk / volume.
Unfortunately, I'm a complete useless as far as programming is concerned, and issues like javascript or vbscript are completely unfamiliar to me. As if that were not enough, when trying to add a script using the code that appears as an example -to use it as a model- in the indicated chapter, it does not allow it as javascript and I do not know what to do.
So, I go back to the community for information about what is happening to me, and how to fix it.

Many thanks again,

Here's a script for a custom column that will show the VolumeName. It can be used in a Rename command to save the name of volumes that will later get detached.

function OnInit(initData) {
    initData.name = 'VolumeName';
    initData.default_enable = true;
    initData.min_version = '12.0';
    var col = initData.AddColumn();
    col.name = 'VolumeName';
    col.method = 'OnVolumeName';
    col.label = 'VolumeName';
    col.justify = 'left';
    col.autogroup = true;
}

function OnVolumeName(scriptColData) {
    var item = scriptColData.item;

    var srcPath = item.path;
    if (srcPath.drive == 0) return;

    var fso = new ActiveXObject('Scripting.FileSystemObject');
    srcPath.Root();
    var srcDrive = fso.GetDrive(srcPath);
    scriptColData.value = srcDrive.VolumeName;
}

ColumnVolumeName.js.txt (655 Bytes)


Thank you very, very much!!!

A question:
I have read somewhere that the VolumeName property (I think it was that way) remains stable even though for some reason the volume changes its assigned letter. Would this script work as well?

Yes, DriveLetter and VolumeName are two separate and independent properties.

Excuse my stupidity: I don't understand how I can do this.

The custom column can be used like any other column or metadata in the Rename command. You'll find it in the Script section: