diff options
Diffstat (limited to 'MediaBrowser.ServerApplication/ApplicationHost.cs')
| -rw-r--r-- | MediaBrowser.ServerApplication/ApplicationHost.cs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/MediaBrowser.ServerApplication/ApplicationHost.cs b/MediaBrowser.ServerApplication/ApplicationHost.cs index 85aeeb129..895a8d9b9 100644 --- a/MediaBrowser.ServerApplication/ApplicationHost.cs +++ b/MediaBrowser.ServerApplication/ApplicationHost.cs @@ -254,6 +254,14 @@ namespace MediaBrowser.ServerApplication { try { + MigrateUserFolders(); + } + catch (IOException ex) + { + } + + try + { File.Delete(Path.Combine(ApplicationPaths.PluginsPath, "MBPhoto.dll")); } catch (IOException) @@ -319,6 +327,35 @@ namespace MediaBrowser.ServerApplication }); } + private void MigrateUserFolders() + { + var rootPath = ApplicationPaths.RootFolderPath; + + var folders = new DirectoryInfo(rootPath).EnumerateDirectories("*", SearchOption.TopDirectoryOnly).Where(i => !string.Equals(i.Name, "default", StringComparison.OrdinalIgnoreCase)) + .ToList(); + + foreach (var folder in folders) + { + MigrateUserFolder(folder); + } + } + + private void MigrateUserFolder(DirectoryInfo folder) + { + var foldersInDefault = new DirectoryInfo(ApplicationPaths.DefaultUserViewsPath).EnumerateDirectories("*", SearchOption.TopDirectoryOnly).ToList(); + + var foldersInUserView = folder.EnumerateDirectories("*", SearchOption.TopDirectoryOnly).ToList(); + + var foldersToMove = foldersInUserView.Where(i => !foldersInDefault.Any(f => string.Equals(f.Name, i.Name, StringComparison.OrdinalIgnoreCase))).ToList(); + + foreach (var folderToMove in foldersToMove) + { + folderToMove.MoveTo(Path.Combine(ApplicationPaths.DefaultUserViewsPath, folderToMove.Name)); + } + + Directory.Delete(folder.FullName, true); + } + /// <summary> /// Registers resources that classes will depend on /// </summary> |
