diff options
Diffstat (limited to 'MediaBrowser.ServerApplication/MainStartup.cs')
| -rw-r--r-- | MediaBrowser.ServerApplication/MainStartup.cs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/MediaBrowser.ServerApplication/MainStartup.cs b/MediaBrowser.ServerApplication/MainStartup.cs index 7780d4745..7e19e5f95 100644 --- a/MediaBrowser.ServerApplication/MainStartup.cs +++ b/MediaBrowser.ServerApplication/MainStartup.cs @@ -2,6 +2,7 @@ using MediaBrowser.Common.Constants; using MediaBrowser.Common.Implementations.Logging; using MediaBrowser.Common.Implementations.Updates; +using MediaBrowser.Controller.IO; using MediaBrowser.Model.Logging; using MediaBrowser.Server.Implementations; using MediaBrowser.ServerApplication.Native; @@ -187,6 +188,8 @@ namespace MediaBrowser.ServerApplication SystemEvents.SessionEnding += SystemEvents_SessionEnding; SystemEvents.SessionSwitch += SystemEvents_SessionSwitch; + MigrateShortcuts(appPaths.RootFolderPath); + _appHost = new ApplicationHost(appPaths, logManager); _app = new App(_appHost, _appHost.LogManager.GetLogger("App"), runService); @@ -523,5 +526,34 @@ namespace MediaBrowser.ServerApplication /// </summary> SEM_NOOPENFILEERRORBOX = 0x8000 } + + private static void MigrateShortcuts(string directory) + { + Directory.CreateDirectory(directory); + + foreach (var file in Directory.EnumerateFiles(directory, "*.lnk", SearchOption.AllDirectories).ToList()) + { + MigrateShortcut(file); + } + } + + private static void MigrateShortcut(string file) + { + var newFile = Path.ChangeExtension(file, ".mblink"); + + try + { + var resolvedPath = FileSystem.ResolveShortcut(file); + + if (!string.IsNullOrEmpty(resolvedPath)) + { + FileSystem.CreateShortcut(newFile, resolvedPath); + } + } + finally + { + File.Delete(file); + } + } } } |
