From 151d88f20db2d6fbb8ea901d84d25d26ccbb136c Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 12 Sep 2016 14:10:09 -0400 Subject: encapsulate path substitution --- MediaBrowser.ServerApplication/MainStartup.cs | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'MediaBrowser.ServerApplication') diff --git a/MediaBrowser.ServerApplication/MainStartup.cs b/MediaBrowser.ServerApplication/MainStartup.cs index cdacdc81f..5d4fba32d 100644 --- a/MediaBrowser.ServerApplication/MainStartup.cs +++ b/MediaBrowser.ServerApplication/MainStartup.cs @@ -15,6 +15,7 @@ using System.Linq; using System.Management; using System.Runtime.InteropServices; using System.ServiceProcess; +using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; @@ -37,9 +38,31 @@ namespace MediaBrowser.ServerApplication [DllImport("kernel32.dll", SetLastError = true)] static extern bool SetDllDirectory(string lpPathName); + public static bool TryGetLocalFromUncDirectory(string local, out string unc) + { + if ((local == null) || (local == "")) + { + unc = ""; + throw new ArgumentNullException("local"); + } + + ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT Name FROM Win32_share WHERE path ='" + local.Replace("\\", "\\\\") + "'"); + ManagementObjectCollection coll = searcher.Get(); + if (coll.Count == 1) + { + foreach (ManagementObject share in searcher.Get()) + { + unc = share["Name"] as String; + unc = "\\\\" + SystemInformation.ComputerName + "\\" + unc; + return true; + } + } + unc = ""; + return false; + } /// - /// Defines the entry point of the application. - /// + /// Defines the entry point of the application. + /// public static void Main() { var options = new StartupOptions(); -- cgit v1.2.3