`
touchinsert
  • 浏览: 1284193 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

c# WinForm 定时执行某个后台操作 如把B文件夹下的文件Copy到A文件夹下

 
阅读更多

//目的是后台定时运行文件同步操作 使A文件夹中的文件与B文件夹中的同步
//先将A文件夹中存在而B文件夹中没有的A文件夹中的文件删除
//再直接将B文件夹下的文件全部复制到A文件夹下
//或者将B文件夹中存在A文件夹中没有或比A文件夹中的更新的B文件夹中的文件复制到A文件夹下

Code
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.IO;

namespaceImageManager
{
publicpartialclassBackgroundWorkerForm:Form
{
publicBackgroundWorkerForm()
{
InitializeComponent();
//
timer1.Interval=10000;
timer1.Enabled
=true;
CheckForIllegalCrossThreadCalls
=false;
}

privatevoidbutton1_Click(objectsender,EventArgse)
{
intiFileCount=0;
System.IO.DirectoryInfodi
=newSystem.IO.DirectoryInfo(@"F:\Temp\A");
iFileCount
=di.GetFiles().Length;
MessageBox.Show(
"A文件夹下文件的个数"+iFileCount.ToString());
}

boolIsComplete=true;
//目的是后台定时运行文件同步操作使A文件夹中的文件与B文件夹中的同步
//先将A文件夹中存在而B文件夹中没有的A文件夹中的文件删除
//再直接将B文件夹下的文件全部复制到A文件夹下
//或者将B文件夹中存在A文件夹中没有或比A文件夹中的更新的B文件夹中的文件复制到A文件夹下
privatevoidbackgroundWorker1_DoWork(objectsender,DoWorkEventArgse)
{
IsComplete
=false;//本次操作未完成

System.IO.DirectoryInfodiA
=newSystem.IO.DirectoryInfo(@"F:\Temp\A");
System.IO.FileInfo[]fiA
=diA.GetFiles();
//先将A文件夹中存在而B文件夹中没有的A文件夹中的文件删除
foreach(FileInfotmpfiAinfiA)
{
if(!File.Exists(@"F:\Temp\B\"+tmpfiA.Name))
{
tmpfiA.Delete();
this.label2.Text+="\nADelete"+tmpfiA.Name;
}
}
//再直接将B文件夹下的文件全部复制到A文件夹下
System.IO.DirectoryInfodiB=newSystem.IO.DirectoryInfo(@"F:\Temp\B");
System.IO.FileInfo[]fiB
=diB.GetFiles();
//foreach(FileInfotmpfiBinfiB)
//{
//tmpfiB.CopyTo(@"F:\Temp\A\"+tmpfiB.Name,true);
//}
//或者将B文件夹中存在A文件夹中没有或比A文件夹中的更新的B文件夹中的文件复制到A文件夹下
foreach(FileInfotmpfiBinfiB)
{
if(File.Exists(@"F:\Temp\A\"+tmpfiB.Name))
{
FileInfotmp
=newSystem.IO.FileInfo(@"F:\Temp\A\"+tmpfiB.Name);
if(tmpfiB.LastWriteTime.CompareTo(tmp.LastWriteTime)!=0)
{
tmpfiB.CopyTo(
@"F:\Temp\A\"+tmpfiB.Name,true);
this.label2.Text+="\nAUpdate"+tmpfiB.Name;
}
}
else
{
tmpfiB.CopyTo(
@"F:\Temp\A\"+tmpfiB.Name,true);
this.label2.Text+="\nACopy"+tmpfiB.Name;
}
}

IsComplete
=true;//本次操作已完成可进行下次操作
}

privatevoidtimer1_Tick(objectsender,EventArgse)
{
if(IsComplete)
{
this.backgroundWorker1.RunWorkerAsync();
}
this.label1.Text=DateTime.Now.ToString();
}
}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics