I assumed that MC18 had its own internal database; is that not the case? Is it just scanning folders for content every time you start it up?
It does, certainly, have its own database, but the image files the database references (the image data) have to be stored on disk somewhere. With the current architecture, this is not stored inside the database files themselves (which would be terrible, it would make the database size balloon uncontrollably, and would cause problems with remotely connected clients).
Keep in mind, when you connect to a remote Library Server, MC has to download the entire database first, and then pushes delta changes back up to the Server. You don't want to be pushing all that cover art across the Internet unnecessarily.
The current system allows each client to cache its own copy of the displayed thumbnails, and the cover art itself is stored with the files (the sources used to build the thumbnails).
I seriously doubt there would be an issue with people going over 32,767 characters.
You'd be wrong.
There are actually two issues. There is the total NTFS path limit (32k characters, as you mentioned). This is known as the "extended path limit" and it applies to many, but not all, Windows API functions if you use their extended (unicode) versions.
The official Windows API MAXPATH is actually a much more trim 260 characters (commonly limited in practice to 255 characters), so some of the underlying Windows functionality is unavailable for those "extended" path names.
From
the MSDN BCL Blog:
Let’s start by looking at one of the more interesting exception messages in the BCL, the PathTooLongException:
[PathTooLongException]: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
"260 characters? That’s ridiculous; increase the limit", say our customer bug reports. To everyone who got their bug resolved as "won’t fix", we’d like to explain this problem more completely and describe current efforts to address it.
To avoid confusion, let’s get some terminology out of the way:
Path: a fully-qualified file name or directory name. In other words, if you have a file C:\temp\fileA.txt, the file name is often called fileA.txt, but the path or fully-qualified file name is C:\temp\fileA.txt
MAX_PATH: This is the maximum length of a path according to the Windows API, defined as 260 characters.
Long path: a path that can be longer than MAX_PATH characters.
Long file name: not the same as a long path. This term is used in contrast to short file names – those 8.3 names you may remember using long ago.
There are ways around this (using the "extended path" prefix of "\\?\") but that has other implications as the Windows API then provides the path directly to the filesystem, and doesn't do any further handling. This can be problematic, and those paths are not guaranteed to work with all applications in all cases. In most cases, it is
still bad practice to enforce any naming scheme that forces paths longer than 255-260 characters. Plus, you know, they still probably need to support Windows XP (the limit is a hard 255 characters there), so they can't necessarily count on all of the API changes in Vista/7/8 being available.
I also
believe I remember from those old discussions, but don't have time to search, that there was some
other limitation on folder depth that became problematic with deep directory structures, even if the system was fully "extended path" compliant. I don't remember the details though, and brief searches didn't bring it up.
And remember, people can (and do) store things like thumbnails and media on network locations, so that path could start with something like:
\\myserver.mydomain.com\share\path\to\my\database\folder\path\to\my\thumbnails\folder\<START MEDIA SPECIFIC SUBSTRUCTURE HERE>For
each and every single file.
Like I said before... If you look back through the forum, there were monumental discussions of this very fact. People actually posted concrete examples of filenames (using the old system) that were
already hitting the length caps, or would be easily if they were moved to something like the default <my documents> directory structure.
It makes sense for the sake of simplicity, but I am approaching 1000 films in my library, and they display just fine in MC18, but file management is now a serious pain.
I have an order-of magnitude more (around 3k movies and 8k total videos in my home Library right this second, and around 35k in my work library). Folder structure and using MC's database solves it. I
never even look at the files on disk, and if I need to, the Rename, Move, and Copy tool makes short work of any file-organization I need done, automatically, based on file tags.
The Views in MC, of course, can filter anything in and out you want.
I then have Windows Libraries that pull together all the files into "All Films", "New Films", "Watched Films" which are simply A-Z listings of all titles, that are searchable via the start menu. (type the name, hit enter, film starts)
I can see how this workflow would be problematic.
I admit, I don't use Windows Explorer for ANY file browsing at all, because it can't access any of my file metadata (the Description, Actors, Watched Status, Rating, Last Played, Year, etc, etc, etc). For example, you're end-running the fact that Windows Explorer doesn't have (robust) file metadata to add a "watched status" to your movies by moving them into a particular folder. I don't need to do anything like that, because MC tracks it automatically. I just have an "Unwatched Movies" view in Theater View that lists only the movies I haven't yet watched (no matter where on disk they live).
To me, that is the
point of MC. It makes it so I
never have to search for video files on disk through Windows Explorer, because that's impossible, because mine are spread across 16TB of disks across the network (including some that are on only-sometimes-attached removable drives). File management in Windows Explorer is a bag-of-hurt that forces me to deal with things one at a time, and that's a dealbreaker with a large library.
Still, though, like I said...
I think there is a way to turn this off, I just don't remember how. Matt, jmone, rjm, or someone else who knows this system better (and actually cares about where the cover art is stored)... Can you comment?
I know how you could use MC to delete/eliminate the cover art JPEGs that are already there in one fell swoop (and I'm happy to help 6233638 do this when we get there), but the first step is to disable the creation of the files in the first place, so that it doesn't keep happening to him.
If there
isn't currently a way to turn this off, then that should be fixed. I can see how it might be too much work for them to craft an "automatic storage" system, but you should be able to turn the cover art system "off" entirely for video files so that these JPGs don't get littered all over the place.