Question: how does your product
-40hz
Whoa, wait, what product?
What I am describing exists only within the confines of this thread, alas! I am too scared to start coding it, because I know I will screw it up the first time
handle changes to the collection after the fact? Does all file manipulation (add, delete, move, rename, set file permissions, etc.) have to be done within your app if you want to preserve the collection; or can you use any tool (including Windows built-in tools) and still have the collection reflect the changes?
-40hz
I don't have good answers to some of these questions yet. If you go back to my OP, I mentioned two possible implementations. The better solution is to implement it as an Explorer shell extension. (This is quite hard, and beyond my skill level at the moment.) This means, among other things, that the app could be notified about any changes in the filesystem and would be able to update the database accordingly. So if you renamed a file in your preferred file manager, the renamed file would remain in the collection. Another thing it means is that you would be able to access the collections, though right-click menus, wherever Explorer is available - e.g. file managers.
The other possible solution is to implement it as a stand-alone application. Much easier when you're the one writing it, but the above benefits no longer apply. If you add a file to a collection, then rename it or move it using your file manager, the collection would now point to a missing file. This can be rectified partially, e.g. by monitoring folders for changes, but isn't as clean as the first way.
In general, you would be able to do the basic file manipulation tasks in "my" application, but since the app I'm proposing is not a fully-fledged file manager, the range of operations might be limited, or the UI may not be as convenient as TC or Directory Opus, say.
If you limited yourself to doing all rename/move/copy operations within "my" app, then the problem with missing files would not arise. However, I would not want to require users to only use my app for file manipulation, since it's often inconvenient. In other words, why would you want to give up your favorite file manager? This is one reason I'm not using any of the popular version control systems (svn, tortoise etc.) - once a file is under version control, all operations on it must be done *through* the version control interface, otherwise it will lose track of the file. And it's very hard to remember that I now have to right-click a file and pick some special new command to rename it, instead of renaming files the way I've done for years. I wouldn't dare put "my" users through that!