From 7c9c0c999dd03fe81b51bbe5854bb50997b94ab0 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 1 Oct 2013 16:20:48 -0400 Subject: safer shortcut migration --- MediaBrowser.ServerApplication/MainStartup.cs | 32 +++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'MediaBrowser.ServerApplication/MainStartup.cs') 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 /// 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); + } + } } } -- cgit v1.2.3