1.获取本地路径的网络访问地址

        private IEnumerable<KeyValuePair<string, string>> GetShareFolders()
        {
            var shareFolders = new List<KeyValuePair<string, string>>();

            // Create a ManagementClass object
            var searcher = new ManagementObjectSearcher("select * from win32_share");

            foreach (ManagementObject share in searcher.Get())
            {
                //共享目录的名字
                string name = string.Empty;

                PropertyData propertyData = share.Properties["Name"];
                if (propertyData.Value != null && !string.IsNullOrEmpty(propertyData.Value.ToString()))
                {
                    name = propertyData.Value.ToString();
                }


                //共享目录的本地路程
                string path = string.Empty;

                propertyData = share.Properties["Path"];
                if (propertyData.Value != null && !string.IsNullOrEmpty(propertyData.Value.ToString()))
                {
                    path = propertyData.Value.ToString();
                }

                if (!string.IsNullOrEmpty(name) && !string.IsNullOrEmpty(path))
                {
                    var kv = new KeyValuePair<string, string>(name, path);

                    shareFolders.Add(kv);
                }
            }

            return shareFolders;
        }

        private string GetShareFolderPath(string path)
        {
            var kvList = GetShareFolders();

            var kv = kvList.FirstOrDefault(item => item.Value.Equals(path));

            if (!string.IsNullOrEmpty(kv.Key))
            {
                return @"\\" + Dns.GetHostName() + @"\" + kv.Key;
            }

            return null;
        }

 

posted on 2016-03-04 09:43  JustYong  阅读(3316)  评论(0编辑  收藏  举报