www.cnblogs.com/freeliver54/archive/2008/10/13/1309720.html
解决方案 »
- datagridview如何实现EXCEL向下拖动右下角功能
- 一个链栈有些地方不行大家帮忙改改
- 空值传入问题
- 请各位推荐C#网络编程方面的书(急)
- windows2008和.net2003c#开发程序的问题
- %$%$%$%$%$%$%$%$ SOCKET 监听时,怎样既监听127.0.0.1,又能监听真实ip? %$%$%$%$%$%$%$%$
- 有关datagrid与文本框绑定,增加记录后用SqlDataAdapter更新数据库
- HxDataPage.Net翻页组件 v3.7发布,企业级数据翻页轻松搞定.来者有分!
- DotNetSetup 制作.Net安装程序需要的.Net环境检测安装程序带源代码下载
- 微软的开发工具太烂了!!!!!!!!!!
- 关于backgroundworker
- Process.Length-1 什么意思。
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;namespace ImageManager
{
public partial class BackgroundWorkerForm : Form
{
public BackgroundWorkerForm()
{
InitializeComponent();
//
timer1.Interval = 10000;
timer1.Enabled = true;
CheckForIllegalCrossThreadCalls = false;
} private void button1_Click(object sender, EventArgs e)
{
int iFileCount = 0;
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"F:\Temp\A");
iFileCount = di.GetFiles().Length;
MessageBox.Show("A文件夹下 文件的个数" + iFileCount.ToString());
} bool IsComplete = true;
//目的是后台定时运行文件同步操作 使A文件夹中的文件与B文件夹中的同步
//先将A文件夹中存在而B文件夹中没有的A文件夹中的文件删除
//再直接将B文件夹下的文件全部复制到A文件夹下
//或者将B文件夹中存在A文件夹中没有或比A文件夹中的更新的B文件夹中的文件复制到A文件夹下
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
IsComplete = false;//本次操作未完成 System.IO.DirectoryInfo diA = new System.IO.DirectoryInfo(@"F:\Temp\A");
System.IO.FileInfo[] fiA = diA.GetFiles();
//先将A文件夹中存在而B文件夹中没有的A文件夹中的文件删除
foreach (FileInfo tmpfiA in fiA)
{
if (!File.Exists(@"F:\Temp\B\" + tmpfiA.Name))
{
tmpfiA.Delete();
this.label2.Text += "\n A Delete "+tmpfiA.Name;
}
}
//再直接将B文件夹下的文件全部复制到A文件夹下
System.IO.DirectoryInfo diB = new System.IO.DirectoryInfo(@"F:\Temp\B");
System.IO.FileInfo[] fiB = diB.GetFiles();
//foreach (FileInfo tmpfiB in fiB)
//{
// tmpfiB.CopyTo(@"F:\Temp\A\" + tmpfiB.Name, true);
//}
//或者将B文件夹中存在A文件夹中没有或比A文件夹中的更新的B文件夹中的文件复制到A文件夹下
foreach (FileInfo tmpfiB in fiB)
{
if (File.Exists(@"F:\Temp\A\" + tmpfiB.Name))
{
FileInfo tmp = new System.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 += "\n A Update " + tmpfiB.Name;
}
}
else
{
tmpfiB.CopyTo(@"F:\Temp\A\" + tmpfiB.Name, true);
this.label2.Text += "\n A Copy " + tmpfiB.Name;
}
} IsComplete = true;//本次操作已完成 可进行下次操作
} private void timer1_Tick(object sender, EventArgs e)
{
if (IsComplete)
{
this.backgroundWorker1.RunWorkerAsync();
}
this.label1.Text = DateTime.Now.ToString();
}
}
}
另外,也可考虑用FileSystemWatcher来监控一个文件夹的变动,然后相应的修改另一个文件夹。
filewatcher要怎麼實現在
如果有子目錄的話會觸發幾個事情呢