快乐人
.net学习ing
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 11 文章- 0 评论- 4
自已写的同步文件夹(备份文件夹)小程序
自动检测源文件夹与目标文件夹.如果检测到源文件夹中的文件或目录在目标文件夹中不存在则复制一份到目标文件夹.
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Text;
using
System.Windows.Forms;
using
System.IO;
using
System.Threading;
namespace
WindowsApplication1
{
public
partial
class
Form1 : Form
{
private
string
soureRoot
=
""
;
private
string
targetRoot
=
""
;
private
Thread th;
public
Form1()
{
InitializeComponent();
}
private
void
button1_Click(
object
sender, EventArgs e)
{
if
(chkDrectory(textBox2.Text, textBox1.Text))
{
soureRoot
=
textBox2.Text;
targetRoot
=
textBox1.Text;
ThreadStart thstart
=
new
ThreadStart(tbDirectory);
th
=
new
Thread(thstart);
th.Name
=
"
tbdirectory
"
;
th.Start();
}
else
{
MessageBox.Show(
"
文件夹选择错误!
"
);
}
}
private
bool
chkDrectory(
string
dir1,
string
dir2)
{
if
(dir1
==
string
.Empty)
{
return
false
;
}
else
if
(dir2
==
string
.Empty)
{
return
false
;
}
else
if
(dir1
==
dir2)
{
return
false
;
}
else
{
return
true
;
}
}
private
void
button2_Click(
object
sender, EventArgs e)
{
if
(folderBrowserDialog1.ShowDialog()
==
DialogResult.OK)
{
textBox2.Text
=
folderBrowserDialog1.SelectedPath;
}
}
private
void
button3_Click(
object
sender, EventArgs e)
{
if
(folderBrowserDialog2.ShowDialog()
==
DialogResult.OK)
{
textBox1.Text
=
folderBrowserDialog2.SelectedPath;
}
}
private
void
tbDirectory()
{
label3.Text
=
"
同步开始,请等待!
"
;
GetAllDirList(textBox2.Text);
label3.Text
=
"
完成!
"
;
}
public
void
GetAllDirList(
string
strBaseDir)
{
DirectoryInfo di
=
new
DirectoryInfo(strBaseDir);
//
获得目录信息
DirectoryInfo[] diA
=
di.GetDirectories();
//
获得该目录下的所有子目录
FileInfo[] fiA
=
di.GetFiles();
//
获得该目录下的所有文件
string
targetDir
=
di.FullName.Replace(soureRoot, targetRoot)
+
"
\\
"
;
for
(
int
j
=
0
; j
<
fiA.Length; j
++
)
{
label3.Text
=
"
正在检查
"
+
fiA[j].FullName;
if
(
!
File.Exists(targetDir
+
fiA[j].Name))
{
label3.Text
=
"
正在更新
"
+
targetDir
+
fiA[j].Name;
fiA[j].CopyTo(targetDir
+
fiA[j].Name);
}
}
foreach
(DirectoryInfo d
in
diA)
{
label3.Text
=
"
正在检查
"
+
d.FullName;
targetDir
=
d.FullName.Replace(soureRoot, targetRoot);
if
(
!
Directory.Exists(targetDir))
{
label3.Text
=
"
正在更新
"
+
targetDir;
Directory.CreateDirectory(targetDir);
}
}
//
子目录递归
for
(
int
i
=
0
; i
<
diA.Length; i
++
)
{
GetAllDirList(diA[i].FullName);
}
}
private
void
button4_Click(
object
sender, EventArgs e)
{
if
(th
!=
null
)
{
th.Abort();
label3.Text
=
"
用户取消!
"
;
}
else
{
label3.Text
=
"
同步还没有开始!
"
;
}
}
}
}
posted @ 2008-07-05 13:34
快乐人
阅读(201)
评论(0)
编辑
收藏
网摘
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
网站首页
新闻频道
社区
小组
博问
网摘
人才
找找看
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
Google站内搜索
China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》
相关文章:
相关链接:
最新IT新闻:
Google操作系统已开始内部测试?
Google阅读器界面升级 全新改版
微软官方下载:Windows Vista SP2 Beta测试版
微软发布PC Live单机游戏客户端
Firefox遭“独家”恶意软件攻击
<
2008年7月
>
日
一
二
三
四
五
六
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
给我留言
查看留言
随笔档案
2008年7月 (11)
最新评论
阅读排行榜
1. asp.net发送邮件(302)
2. 上传图片并生成缩略图(215)
3. 自已写的同步文件夹(备份文件夹)小程序(201)
4. 自已写的帮儿子出口算题的程序(192)
5. 飘动广告js代码(收藏)(157)
评论排行榜
1. 自已写的帮儿子出口算题的程序(3)
2. asp.net发送邮件(1)
3. 自已写的同步文件夹(备份文件夹)小程序(0)
4. 对联广告js代码(收藏)(0)
5. 飘动广告js代码(收藏)(0)