Renaming a single monitored folder in Windows Explorer may incorrectly update the path of all files in MusicBee.
I've recently bought a new NAS and am gradually recreating a MusicBee library on a mapped network share.
I have MusicBee set to monitor a single folder that contains all of my tagged music:
\\[NAS Name]\Multimedia\Music
For the sake of this example, within that I have these two folders:
\\[NAS Name]\Multimedia\Music\B\Billy Joel\1978 - 52nd Street\
\\[NAS Name]\Multimedia\Music\J\Jeff Wayne\1978 - War of the Worlds
The first track in the first folder has this path:
\\[NAS Name]\Multimedia\Music\B\Billy Joel\1978 - 52nd Street\01 - Big Shot.flac
If I use Windows Explorer to rename the second folder to this:
\\[NAS Name]\Multimedia\Music\J\Jeff Wayne\1978 - War of the Worlds [Test]
MusicBee's status bar shows:
Monitored folders: 4,492 files updated
(which is every file in my library)
The path of the previous file in the MusicBee tag editor now shows as:
\\[NAS Name]\Multimedia\Music\J\Jeff Wayne\1978 - War of the Worlds [Test]\B\Billy Joel\1978 - 52nd Street\01 - Big Shot.flac
Somehow, the portion of the renamed folder path below the monitored folder (in bold) is being inserted into every file path.
I didn't notice this when I had my music stored on a local drive, so maybe it's a bug that only affects network shares.
Also, it doesn't happen every time but I have seen it when renaming folders in both the Library and Inbox. Hopefully, there's something obvious that can be fixed. If not, I'll keep testing and try to work out some more specific steps to reproduce the problem.
-edit-
Sorry, should have mentioned I'm using 3.3.7077.
For what you are reporting, it appears that Windows reported the rename from folder as:
\\[NAS Name]\Multimedia\Music\
and rename to folder as:
\\[NAS Name]\Multimedia\Music\J\Jeff Wayne\1978 - War of the Worlds [Test]\
Assuming you're using a FileSystemWatcher, I just compiled this simple console app:
https://docs.microsoft.com/en-us/dotnet/api/system.io.filesystemwatcher?view=netframework-4.8
(except I set the NotifyFilter to only NotifyFilters.DirectoryName)
Running this on my simple test library folder shows that for network shares at least, the FileSystemWatcher is unreliable.
Adding and removing "[Test]" from a monitored folder name, I got the following output:
File: \\[NAS Name]\Multimedia\Music-Test\B\Billy Joel\1978 - 52nd Street renamed to \\[NAS Name]\Multimedia\Music-Test\B\Billy Joel\1978 - 52nd Street [Test]
File: \\[NAS Name]\Multimedia\Music-Test\ renamed to \\[NAS Name]\Multimedia\Music-Test\B\Billy Joel\1978 - 52nd Street [Test]
File: \\[NAS Name]\Multimedia\Music-Test\B\Billy Joel\1978 - 52nd Street [Test] renamed to \\[NAS Name]\Multimedia\Music-Test\B\Billy Joel\1978 - 52nd Street
File: \\[NAS Name]\Multimedia\Music-Test\B\Billy Joel\1978 - 52nd Street [Test] renamed to \\[NAS Name]\Multimedia\Music-Test\B\Billy Joel\1978 - 52nd Street
For some reason, each rename operation raised two events.
And, as you suggested, the second of the four incorrectly reported the original folder name in e.OldFullPath. :(
Running the same test again:
File: \\[NAS Name]\Multimedia\Music-Test\B\Billy Joel\1978 - 52nd Street renamed to \\[NAS Name]\Multimedia\Music-Test\B\Billy Joel\1978 - 52nd Street [Test]
File: \\[NAS Name]\Multimedia\Music-Test\ renamed to \\[NAS Name]\Multimedia\Music-Test\B\Billy Joel\1978 - 52nd Street [Test]
File: \\[NAS Name]\Multimedia\Music-Test\B\Billy Joel\1978 - 52nd Street [Test] renamed to \\[NAS Name]\Multimedia\Music-Test\B\Billy Joel\1978 - 52nd Street
File: \\[NAS Name]\Multimedia\Music-Test\ renamed to \\[NAS Name]\Multimedia\Music-Test\B\Billy Joel\1978 - 52nd Street
This time, two of the four were wrong, so it's not even consistently buggy. :'(
Yep.
Renamed "Test Folder 1" to "Test Folder 2":
ChangeType : Renamed
OldFullPath : \\[NAS Name]\Multimedia\Music-Test\Test Folder 1
OldName : Test Folder 1
> Is null? : False
FullPath : \\[NAS Name]\Multimedia\Music-Test\Test Folder 2
ChangeType : Renamed
OldFullPath : \\[NAS Name]\Multimedia\Music-Test\
OldName :
> Is null? : True
FullPath : \\[NAS Name]\Multimedia\Music-Test\Test Folder 2
I tested a dozen times, and in every case OldName on the dodgy notification was a null string.
It also occurred to me that if e.oldFullPath is the same as a top-level monitored Library path it must be incorrect, because a FileSystemWatcher set to monitor subdirectories won't send a notification if that top-level folder is renamed.