aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.ServerApplication/MainStartup.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.ServerApplication/MainStartup.cs')
-rw-r--r--MediaBrowser.ServerApplication/MainStartup.cs32
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);
+ }
+ }
}
}