safer shortcut migration

This commit is contained in:
Luke Pulverenti
2013-10-01 16:20:48 -04:00
parent 2da4ef2a01
commit 7c9c0c999d
4 changed files with 70 additions and 24 deletions

View File

@@ -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);
}
}
}
}