diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs index b7ab8c4..c678528 100644 --- a/MainWindow.xaml.cs +++ b/MainWindow.xaml.cs @@ -332,7 +332,7 @@ namespace GeekDesk } //监听实时文件夹菜单 - FileWatcher.StartLinkMenuWatcher(appData); + FileWatcher.EnableLinkMenuWatcher(appData); //更新线程开启 检测更新 diff --git a/Util/FileWatcher.cs b/Util/FileWatcher.cs index 126f478..8aa1e1f 100644 --- a/Util/FileWatcher.cs +++ b/Util/FileWatcher.cs @@ -5,6 +5,7 @@ using System.Collections.ObjectModel; using System.IO; using System.Linq; using System.Text; +using System.Threading; using System.Threading.Tasks; namespace GeekDesk.Util @@ -88,7 +89,7 @@ namespace GeekDesk.Util /// 开启所有菜单监听 /// /// - public static void StartLinkMenuWatcher(AppData appData) + public static void EnableLinkMenuWatcher(AppData appData) { foreach (MenuInfo menuInfo in appData.MenuList) { @@ -97,6 +98,37 @@ namespace GeekDesk.Util LinkMenuWatcher(menuInfo); } } + RefreshLinkMenuIcon(appData); + } + + private static void RefreshLinkMenuIcon(AppData appData) + { + new Thread(() => + { + foreach (MenuInfo menuInfo in appData.MenuList) + { + if (menuInfo.MenuType == Constant.MenuType.LINK) + { + DirectoryInfo dirInfo = new DirectoryInfo(menuInfo.LinkPath); + FileSystemInfo[] fileInfos = dirInfo.GetFileSystemInfos(); + + ObservableCollection iconList = new ObservableCollection(); + foreach (FileSystemInfo fileInfo in fileInfos) + { + IconInfo iconInfo = CommonCode.GetIconInfoByPath_NoWrite(fileInfo.FullName); + iconList.Add(iconInfo); + } + App.Current.Dispatcher.Invoke(() => + { + foreach (IconInfo iconInfo in iconList) + { + menuInfo.IconList = null; + menuInfo.IconList = iconList; + } + }); + } + } + }).Start(); } ///