ShareInfoTool.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. using Azylee.Core.DataUtils.CollectionUtils;
  2. using Azylee.Core.DataUtils.StringUtils;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Management;
  7. using System.Text;
  8. namespace Azylee.Core.WindowsUtils.ShareUtils
  9. {
  10. public class ShareInfoTool
  11. {
  12. /// <summary>
  13. /// 获取计算机共享文件
  14. /// </summary>
  15. /// <returns></returns>
  16. public static List<string> GetList()
  17. {
  18. List<string> rs = new List<string>();
  19. try
  20. {
  21. ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from win32_share");
  22. foreach (ManagementObject share in searcher.Get())
  23. {
  24. try
  25. {
  26. string name = share["Name"].ToString();
  27. string path = share["Path"].ToString();
  28. rs.Add(name + "->" + path);
  29. }
  30. catch { }
  31. }
  32. }
  33. catch { }
  34. return rs;
  35. }
  36. /// <summary>
  37. /// 存在共享(模糊匹配路径开头)
  38. /// </summary>
  39. /// <param name="path"></param>
  40. /// <returns></returns>
  41. public static bool ExistPath(string path)
  42. {
  43. if (Str.Ok(path))
  44. {
  45. try
  46. {
  47. ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from win32_share");
  48. foreach (ManagementObject share in searcher.Get())
  49. {
  50. try
  51. {
  52. string _path = share["Path"].ToString().ToUpper();
  53. if (_path.StartsWith(path.ToUpper())) return true;
  54. }
  55. catch { }
  56. }
  57. }
  58. catch { }
  59. }
  60. return false;
  61. }
  62. /// <summary>
  63. /// 存在共享(匹配共享名称)
  64. /// </summary>
  65. /// <param name="name"></param>
  66. /// <returns></returns>
  67. public static bool ExistName(string name)
  68. {
  69. if (Str.Ok(name))
  70. {
  71. try
  72. {
  73. ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from win32_share");
  74. foreach (ManagementObject share in searcher.Get())
  75. {
  76. try
  77. {
  78. string _name = share["Name"].ToString().ToUpper();
  79. if (_name == name.ToUpper()) return true;
  80. }
  81. catch { }
  82. }
  83. }
  84. catch { }
  85. }
  86. return false;
  87. }
  88. public static bool ExistPaths(string[] paths)
  89. {
  90. if (Ls.ok(paths))
  91. {
  92. foreach (var p in paths)
  93. if (ExistPath(p.Trim())) return true;
  94. }
  95. return false;
  96. }
  97. public static bool ExistNames(string[] names)
  98. {
  99. if (Ls.ok(names))
  100. {
  101. foreach (var n in names)
  102. if (ExistName(n.Trim())) return true;
  103. }
  104. return false;
  105. }
  106. }
  107. }