From 26e4a7e4d580734bae8f3a0d78de1f5aee9e7cf8 Mon Sep 17 00:00:00 2001 From: BookerLiu Date: Thu, 6 Apr 2023 16:09:33 +0800 Subject: [PATCH] =?UTF-8?q?:white=5Fcheck=5Fmark:=20=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=9B=91=E5=90=AC=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MainWindow.xaml.cs | 2 +- Util/FileWatcher.cs | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) 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(); } ///