public void CountFiles(string sDir) { try { foreach (string d in Directory.GetDirectories(sDir)) { CountFiles(d); } DirectoryInfo dir = new DirectoryInfo(sDir); FileInfo[] myFiles = dir.GetFiles("*.package"); filesToProcess += myFiles.Length; foreach (FileInfo f in myFiles) { fileInfo fi = new fileInfo(); fi.filename = f.FullName; fi.foldername = this.masterDir; this.fileList.Push(fi); fi = null; } if (includedisabledInScanToolStripMenuItem.Checked) { myFiles = dir.GetFiles("*.package.disabled"); filesToProcess += myFiles.Length; foreach (FileInfo f in myFiles) { fileInfo fi = new fileInfo(); fi.filename = f.FullName; fi.foldername = this.masterDir; this.fileList.Push(fi); fi = null; } } myFiles = dir.GetFiles("*.dbc"); filesToProcess += myFiles.Length; foreach (FileInfo f in myFiles) { fileInfo fi = new fileInfo(); fi.filename = f.FullName; fi.foldername = this.masterDir; this.fileList.Push(fi); fi = null; } Application.DoEvents(); } catch (System.Exception excpt) { Console.WriteLine(excpt.Message); } }
public void ProcessFiles() { toolStripProgressBar1.Minimum = 0; DateTime start = new DateTime(); start = DateTime.Now; int numFiles = this.fileList.Count; double bytesScanned = 0; //string filename = ""; toolStripProgressBar1.Maximum = numFiles + 1; this.inScan = true; for (int i = 0; i < numFiles; i++) { try { fileInfo fi = (fileInfo)this.fileList.Pop(); FileInfo f = new FileInfo(fi.filename); bytesScanned += f.Length; ListViewItem item = new ListViewItem(); item.Text = f.Name; item.SubItems.Add(fi.filename); item.ToolTipText = fi.filename; item.SubItems.Add(""); item.SubItems.Add(f.Length.ToString()); item.SubItems.Add(f.LastWriteTime.ToString()); string folder = f.DirectoryName.Replace(fi.foldername, ""); item.SubItems.Add(folder); item.SubItems.Add(""); item.SubItems.Add(""); item.Tag = i; checkPackage(fi.filename, item); listView1.Items.Add(item); packageList.Add(item); toolStripProgressBar1.Value++; //Application.DoEvents(); } catch (System.Exception excpt) { MessageBox.Show(excpt.Message + " " + excpt.StackTrace); } } this.inScan = false; DateTime stop = new DateTime(); stop = DateTime.Now; TimeSpan timeSpan = new TimeSpan(); timeSpan = stop - start; double timeTaken = timeSpan.TotalSeconds; if (timeTaken == 0) { timeTaken++; } double filesPerSecond = Math.Round((double)(numFiles / timeTaken), 2); toolStripStatusLabel1.Text = "Scanned " + numFiles + " files in " + Math.Round(timeTaken, 3) + " seconds with " + Math.Round(filesPerSecond, 0) + " files per second."; statusStrip1.Refresh(); toolStripProgressBar1.Value = 0; if (bytesScanned == 0) { bytesScanned++; } groupBox3.Text = "Installed .package files: (" + numFiles + " files, " + Math.Round(bytesScanned / (1024 * 1024), 2) + "MB used)"; }