aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.ServerApplication/MainStartup.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-10-01 16:20:48 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-10-01 16:20:48 -0400
commit7c9c0c999dd03fe81b51bbe5854bb50997b94ab0 (patch)
tree46e107868b28fa9d2c5629d04653dc7c1bd12288 /MediaBrowser.ServerApplication/MainStartup.cs
parent2da4ef2a01093c7f3f05530ec5da5b606f1989ba (diff)
safer shortcut migration
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);
+ }
+ }
}
}