public static USBDeviceInfo GetInitializedUsb(IEnumerable <USBDeviceInfo> devices) { var device = devices.SingleOrDefault(d => { var sync = new USBSync(d); return(sync.Match()); }); return(device); }
private void btnStart_Click(object sender, EventArgs e) { btnStart.Enabled = false; btnStart.Text = "数据同步中,请稍后!"; var devices = Utils.GetUsbDevices(); if (!devices.Any()) { MessageBox.Show("没有找到可用于同步数据的 USB 设备,请检查您的设备是否已连接至电脑"); return; } var initializedUsb = Utils.GetInitializedUsb(devices); var usbSync = new USBSync(initializedUsb); if (usbSync.DeviceReady) { // 确定本机连接的服务器的身份(服务端或者客户端) var serverType = Utils.GetCurrentServerType(); if (serverType == 0) { // 服务端的数据库标识数据在部署时已手动添加 // 在此,第一次在客户端进行初始化时,将生成 // 一条数据库标识数据,插入数据库中 Utils.AddDbIdentity(); serverType = 2; } //string webAppDir = Utils.GetWebAppDir(); //string webAppDir = Utils.GetServerUrl(); //try //{ // //var port = Utils.GetWebAppPort(); // //webAppDir = Utils.GetWebAppDirectoryByPort(port); // var appName = Utils.GetWebAppName(); // webAppDir = Utils.GetWebAppDirectoryByAppName(appName); //} //catch (COMException) //{ // MessageBox.Show("获取 webapp 目录失败,请尝试“关闭程序,然后以管理员身份运行此程序”"); // return; //} // 根据身份启动相应的程序进行数据同步 usbSync.DoSync(serverType); MessageBox.Show("数据同步成功"); } else { MessageBox.Show("没有找到可用于同步数据的 USB 设备,您的 USB 设备没有经过“USB 初始化工具”初始化"); } }
private void VolumeClick(object sender, EventArgs e) { var btn = sender as Button; var t = btn.Text; var start = t.LastIndexOf("(") + 1; // 从像 xxx(x:) 的字符串中提取盘符 var dir = t.Substring(start, t.Length - start - 1); var usbSync = new USBSync(dir); if (usbSync.Match()) { MessageBox.Show("此 U 盘已被正确初始化,可以正常使用"); } else { usbSync.InitUsb(); this.Controls.Remove(btn); this.main.Show(); MessageBox.Show("初始化成功"); this.Close(); } }