private void cmdScan_Click(object sender, EventArgs e) { if (driveScanner == null || !driveScanner.Scanning) { string dir = ""; using (var fbd = new FolderBrowserDialog()) { DialogResult result = fbd.ShowDialog(); if (result == DialogResult.OK && !string.IsNullOrWhiteSpace(fbd.SelectedPath)) { dir = fbd.SelectedPath; } } driveScanner = new DriveScanner(dir); driveScanner.onPercChanged += onScanPercChanged; driveScanner.onScanComplete += onScanComplete; driveScanner.scan(true); cmdScan.Text = "Scanning..\r\n(" + Math.Round(driveScanner.CompletePercentage, 2) + "%)\r\n[Cancel]"; } else { driveScanner.cancelScan(); cmdScan.Text = "Scan"; } }