1: class UNCHelper
2: {
3: public static string ConvertLocalFilePathsToUNCPath(string fileName, string sharedFolderpath)
4: {
5: string strPath = fileName.Substring(sharedFolderpath.Length);
6: string sharedFolderPathInUNC = ConvertLocalFolderPathToIPBasedUNCPath(sharedFolderpath);
7: string networkPath = sharedFolderPathInUNC + strPath;
8: return networkPath;
9: }
10:
11: public static string ConvertLocalFolderPathToIPBasedUNCPath(string localFolderName)
12: {
13: string ipBasedUNCPath = string.Empty;
14:
15: ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher("SELECT Name FROM Win32_share WHERE path ='" +
localFolderName.Replace("\\", "\\\\") + "'");
16: ManagementObjectCollection managementObjectCollection = managementObjectSearcher.Get();
17: if (managementObjectCollection.Count != 0)
18: {
19: foreach (ManagementObject item in managementObjectCollection)
20: {
21: String ComputerName = ReturnMachineIP().ToString();// use Dns.GetHostName(); for computername instead of IP
22: ipBasedUNCPath = item["Name"] as String;
23: ipBasedUNCPath = "\\\\" + ComputerName + "\\" + ipBasedUNCPath;
24: return ipBasedUNCPath;
25: }
26: }
27: return ipBasedUNCPath;
28: }
29:
30: private static IPAddress ReturnMachineIP()
31: {
32: String hostName = Dns.GetHostName();
33: IPHostEntry ipEntry = Dns.GetHostEntry(hostName);
34: IPAddress[] addr = ipEntry.AddressList;
35: IPAddress ipV4 = null;
36: foreach (IPAddress item in addr)
37: {
38: if (item.AddressFamily == AddressFamily.InterNetwork)
39: {
40: ipV4 = item;
41: break;
42: }
43:
44: }
45: if (ipV4 == null)
46: {
47: throw new ApplicationException("You have no IP of Version 4.Server can not run witout it");
48: }
49: return ipV4;
50: }
51: }