Update Location of Files in Database
Version 1.4.5
- MediaMonkey Add-on -

by Zvezdan Dimitrijević
This add-on works with MediaMonkey v2.x-4.x. Its purpose is to update serial number of a drive and/or paths of files stored in the database, for example after upgrading hard disk or moving files from/to some network drive with UNC path. This add-on could change the mentioned data stored in the database only, but it could also copy the media files from the old to the new location.

Its main advantages to some another similar scripts are the possibility to update location of files on network drives and the option to specify old and new base paths, e.g. if you want to update c:\Documents & Settings\User\Music\ to d:\Music\.

If you want to discus about this add-on, you could visit its related MediaMonkey forum thread.

You could also take a look on my other add-ons for MediaMonkey.

UpdateLocationOfFiles-1.3

What is new

v1.4.5 - 2019-05-11

v1.4 - 2015-06-22

v1.3.3 - 2012-06-12

v1.3.2 - 2012-06-01

v1.3.1 - 2012-02-26

v1.3 - 2012-02-24

v1.2 - 2012-02-13

v1.1.1 - 2012-02-04

v1.1 - 2012-01-31

v1.0.1 - 2012-01-25

v1.0 - 2012-01-09

Installation

Usage

After installation of the add-on you will find the new "Update Location of Files in Database..." option in the Tools | Scripts menu. When you choose that option from the menu, you will get opened the add-on's dialog box. After its first start, the options will be set to their default blank/unchecked states; if you change some option in the dialog box and start the update, the settings will be remembered in the MediaMonkey.ini file, so the next opening of the dialog box will show those last settings. The exception is with the Old drive and Old path combo boxes that will be automatically selected with the drive/path of the selected folder in the Tree panel. However, the old drive/path could be set manually in the mentioned dialog box as well.

With the Old drive and Old path combo boxes you should set the old location of files (source) and with the New path text box you should set the new location of files (destination). To be able to do update, both locations should be correctly specified. If your Old/drive path dropdown lists are not filled with drives/paths, that means that your database is empty, in which case this add-on cannot be used - you should have database that contains files if you want to update their location (as the name of the add-on suggests).

The Old drive combo box shows all drives containing media files that are added to the database (Library). When you choose some drive from that combo box, the Old path combo box will be filled with all folders from that drive containing files in the database including all their parent folders until the root of drive. For example, if I have one track in the database which has the path C:\Music\Pink Floyd\Time.mp3, there would be listed 3 items: C:\, C:\Music\ and C:\Music\Pink Floyd\.

With the Old path combo box you are choosing the base folder that you want to update. This means that you will get updated all files from that folder and its sub(-sub)-folders recursively. This also means that you should select the root of the drive in the Old path combo box if you want to update all files from that drive. For example, if I specify C:\Music\, all files which have that on the begin of the path would be updated, like C:\Music\Pink Floyd\Time.mp3, but not file like C:\My Documents\Pink Floyd\Time.mp3 since it has different base folder.

The Old location label shows how many media and playlist files from the database are located in the base folder (and its sub-folders) selected by Old path; also, it shows how many of those files still physically exist at that location.

For example, if my Old location shows "228831 media files + 1329 playlist files, 229920 existing + 240 missing", that means that I have 228831 records about media files and 1329 records containing the information about playlist files stored into the database. The sum of these two numbers is 230160 files and it is equal to the sum of another two numbers (229920 existing + 240 missing). In another words, of all my media and playlist files referenced in the database I have 240 files that are psychically missing on the location that I have specified with the Old path. It is not displayed how many media or playlist files are existing/missing individually, but only for their sum.

By the way, the records containing information about playlist files are not the same as the records about playlists. The records of playlists could contain the information about the imported playlists files, but if you have playlists that are created by yourself, i.e. they are not created by import from playlist files, then such playlists will not contain the information about playlist files.

In the New path text box you should specify the base folder which would replace the old one after applied the Update option. For example, if the Old path is "c:\Music\" and New path is "d:\Media\My Music\" then all files in the database that have "c:\Music\" on the begin of path will be updated to "d:\Media\My Music\". You could type the new path on keyboard or you could click on the "..." button to choose some existing drive/folder.

Similarly to the Old location, the New location label shows how many media and playlist files from the database physically exist at the base folder (and its sub-folders) specified by New path.

When you change old or new path, the add-on will start checking for existence of the files at specified locations which could be time consuming, especially with the large databases and/or media files located on network drives. You don't need to wait for the add-on to finish searching for files since it is executed in another thread just for checking purpose and will be canceled if you click on the Update button. However, it is recommended to wait for add-on to finish with that searching because it would display how many files from the database are found on the new specified location.

If the option Copy files from the old to the new location first is turned on, then the files will be physically copied before updating of the database; otherwise, only the data about the location of files in the database will be modified. If you plan to use this option, it is recommended that you temporarily turn off the File Monitor option in the Options dialog box (if you have it already enabled) before you open the add-on's dialog box.

Only the media/playlist files previously stored in the database could be copied. If you have some extra files beside of the media files in their containing folders, e.g. bitmaps with covers or some txt/html files, they would not be copied using the mentioned option; in that case you should use your preferred program for backup to copy files from the old to the new location before you apply this add-on.

If you want to update location in database only for files that exist at the new specified location, you should turn on the option Update paths in database only for files that exist at new location. In that case you should wait for the add-on to finish with search for files before you click on the Update button. However, if you turn that option off, you could click on the Update button immediately after you specify the old and new paths.

The Backup button allows you to save a copy of the current (active) database to some safe place. And finally, when all previously mentioned options are set as wanted, the click on the Update button will start the update action (which could take some time). After the update is finished, the add-on could try to refresh the affected paths in the main filelist, but sometimes that could be unsuccessful because of some limitations in the program itself, in which case the simple restart of the program would help. The paths in the Now Playing panel will be updated as well if the affected files were previously already stored in the database.

Important

This add-on is mostly useful if you have similar folder structure on the old and new drives, i.e. when the old and new paths have different only base folders. If you have moved media files to the new hard disk using different filenames and/or folder structure than it is stored in the database, then you could try Restore/Synchronize Database add-on instead since it can transfer data even in such situations, but it is much slower.

This add-on is relatively dangerous and could cause some corrupted data in the current database, especially if you forcibly terminate the program during its execution! Please make a backup of the current database before you apply this add-on.

Notice

This add-on is a false positive reported as a worm by F-Secure. The author of F-Secure promised me that will update its database and put the add-on on white-list, but still didn't. If you go to the www.virustotal.com/en/ site, you will see that it is safe tested by 54 popular anti-virus engines; the only one reporting a worm in it is F-Secure.