自已写的同步文件夹(备份文件夹)小程序
自动检测源文件夹与目标文件夹.如果检测到源文件夹中的文件或目录在目标文件夹中不存在则复制一份到目标文件夹.
 using System;
using System;
 using System.Collections.Generic;
using System.Collections.Generic;
 using System.ComponentModel;
using System.ComponentModel;
 using System.Data;
using System.Data;
 using System.Drawing;
using System.Drawing;
 using System.Text;
using System.Text;
 using System.Windows.Forms;
using System.Windows.Forms;
 using System.IO;
using System.IO;
 using System.Threading;
using System.Threading;

 namespace WindowsApplication1
namespace WindowsApplication1
 {
{
 public partial class Form1 : Form
    public partial class Form1 : Form
 {
    {
 private string soureRoot = "";
        private string soureRoot = "";
 private string targetRoot = "";
        private string targetRoot = "";
 private Thread th;
        private Thread th;
 public Form1()
        public Form1()
 {
        {
 InitializeComponent();
            InitializeComponent();
 }
        }

 private void button1_Click(object sender, EventArgs e)
        private void button1_Click(object sender, EventArgs e)
 {
        {
 if (chkDrectory(textBox2.Text, textBox1.Text))
            if (chkDrectory(textBox2.Text, textBox1.Text))
 {
            {
 soureRoot = textBox2.Text;
                soureRoot = textBox2.Text;
 targetRoot = textBox1.Text;
                targetRoot = textBox1.Text;
 ThreadStart thstart = new ThreadStart(tbDirectory);
                ThreadStart thstart = new ThreadStart(tbDirectory);
 th = new Thread(thstart);
                th = new Thread(thstart);
 th.Name = "tbdirectory";
                th.Name = "tbdirectory";
 th.Start();
                th.Start();
 }
            }
 else
            else
 {
            {
 MessageBox.Show("文件夹选择错误!");
                MessageBox.Show("文件夹选择错误!");
 }
            }
 }
        }

 private bool chkDrectory(string dir1,string dir2)
        private bool chkDrectory(string dir1,string dir2)
 {
        {
 if (dir1 == string.Empty)
            if (dir1 == string.Empty)
 {
            {
 return false;
                return false;
 
               
 }
            }
 else if (dir2 == string.Empty)
            else if (dir2 == string.Empty)
 {
            {
 return false;
                return false;
 }
            }
 else if (dir1 == dir2)
            else if (dir1 == dir2)
 {
            {
 return false;
                return false;
 }
            }
 else
            else
 {
            {
 return true;
                return true;
 }
            }
 }
        }

 private void button2_Click(object sender, EventArgs e)
        private void button2_Click(object sender, EventArgs e)
 {
        {
 if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
            if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
 {
            {
 textBox2.Text = folderBrowserDialog1.SelectedPath;
                textBox2.Text = folderBrowserDialog1.SelectedPath;
 }
            }
 }
        }

 private void button3_Click(object sender, EventArgs e)
        private void button3_Click(object sender, EventArgs e)
 {
        {
 if (folderBrowserDialog2.ShowDialog() == DialogResult.OK)
            if (folderBrowserDialog2.ShowDialog() == DialogResult.OK)
 {
            {
 textBox1.Text = folderBrowserDialog2.SelectedPath;
                textBox1.Text = folderBrowserDialog2.SelectedPath;
 }
            }
 }
        }
 private void tbDirectory()
        private void tbDirectory()
 {
        {
 label3.Text = "同步开始,请等待!";
            label3.Text = "同步开始,请等待!";
 GetAllDirList(textBox2.Text);
            GetAllDirList(textBox2.Text);
 label3.Text = "完成!";
            label3.Text = "完成!";
 }
        }

 public void GetAllDirList(string strBaseDir)
        public void GetAllDirList(string strBaseDir)
 {
        {
 DirectoryInfo di = new DirectoryInfo(strBaseDir);//获得目录信息
            DirectoryInfo di = new DirectoryInfo(strBaseDir);//获得目录信息
 DirectoryInfo[] diA = di.GetDirectories();//获得该目录下的所有子目录
            DirectoryInfo[] diA = di.GetDirectories();//获得该目录下的所有子目录
 FileInfo[] fiA = di.GetFiles();//获得该目录下的所有文件
            FileInfo[] fiA = di.GetFiles();//获得该目录下的所有文件
 string targetDir = di.FullName.Replace(soureRoot, targetRoot) + "\\";
            string targetDir = di.FullName.Replace(soureRoot, targetRoot) + "\\";
 for (int j = 0; j < fiA.Length; j++)
            for (int j = 0; j < fiA.Length; j++)
 {
            {
 label3.Text = "正在检查" + fiA[j].FullName;
                label3.Text = "正在检查" + fiA[j].FullName;
 if (!File.Exists(targetDir + fiA[j].Name))
                if (!File.Exists(targetDir + fiA[j].Name))
 {
                {
 label3.Text = "正在更新" + targetDir + fiA[j].Name;
                    label3.Text = "正在更新" + targetDir + fiA[j].Name;
 fiA[j].CopyTo(targetDir + fiA[j].Name);
                    fiA[j].CopyTo(targetDir + fiA[j].Name);
 }
                }
 }
            }
 foreach (DirectoryInfo d in diA)
            foreach (DirectoryInfo d in diA)
 {
            {
 label3.Text = "正在检查" + d.FullName;
                label3.Text = "正在检查" + d.FullName;
 targetDir = d.FullName.Replace(soureRoot, targetRoot);
                targetDir = d.FullName.Replace(soureRoot, targetRoot);
 if (!Directory.Exists(targetDir))
                if (!Directory.Exists(targetDir))
 {
                {
 label3.Text = "正在更新" + targetDir;
                    label3.Text = "正在更新" + targetDir;
 Directory.CreateDirectory(targetDir);
                    Directory.CreateDirectory(targetDir);
 }
                }
 }
            }
 //子目录递归
            //子目录递归
 for (int i = 0; i < diA.Length; i++)
            for (int i = 0; i < diA.Length; i++)
 {
            {
 GetAllDirList(diA[i].FullName);
                GetAllDirList(diA[i].FullName);
 }
            }
 }
        }

 private void button4_Click(object sender, EventArgs e)
        private void button4_Click(object sender, EventArgs e)
 {
        {
 if (th != null)
            if (th != null)
 {
            {
 th.Abort();
                th.Abort();
 label3.Text = "用户取消!";
                label3.Text = "用户取消!";
 }
            }
 else
            else
 {
            {
 label3.Text = "同步还没有开始!";
                label3.Text = "同步还没有开始!";
 }
            }
 }
        }

 }
    }
 }
}
 using System;
using System; using System.Collections.Generic;
using System.Collections.Generic; using System.ComponentModel;
using System.ComponentModel; using System.Data;
using System.Data; using System.Drawing;
using System.Drawing; using System.Text;
using System.Text; using System.Windows.Forms;
using System.Windows.Forms; using System.IO;
using System.IO; using System.Threading;
using System.Threading;
 namespace WindowsApplication1
namespace WindowsApplication1 {
{ public partial class Form1 : Form
    public partial class Form1 : Form {
    { private string soureRoot = "";
        private string soureRoot = ""; private string targetRoot = "";
        private string targetRoot = ""; private Thread th;
        private Thread th; public Form1()
        public Form1() {
        { InitializeComponent();
            InitializeComponent(); }
        }
 private void button1_Click(object sender, EventArgs e)
        private void button1_Click(object sender, EventArgs e) {
        { if (chkDrectory(textBox2.Text, textBox1.Text))
            if (chkDrectory(textBox2.Text, textBox1.Text)) {
            { soureRoot = textBox2.Text;
                soureRoot = textBox2.Text; targetRoot = textBox1.Text;
                targetRoot = textBox1.Text; ThreadStart thstart = new ThreadStart(tbDirectory);
                ThreadStart thstart = new ThreadStart(tbDirectory); th = new Thread(thstart);
                th = new Thread(thstart); th.Name = "tbdirectory";
                th.Name = "tbdirectory"; th.Start();
                th.Start(); }
            } else
            else {
            { MessageBox.Show("文件夹选择错误!");
                MessageBox.Show("文件夹选择错误!"); }
            } }
        }
 private bool chkDrectory(string dir1,string dir2)
        private bool chkDrectory(string dir1,string dir2) {
        { if (dir1 == string.Empty)
            if (dir1 == string.Empty) {
            { return false;
                return false; 
                }
            } else if (dir2 == string.Empty)
            else if (dir2 == string.Empty) {
            { return false;
                return false; }
            } else if (dir1 == dir2)
            else if (dir1 == dir2) {
            { return false;
                return false; }
            } else
            else {
            { return true;
                return true; }
            } }
        }
 private void button2_Click(object sender, EventArgs e)
        private void button2_Click(object sender, EventArgs e) {
        { if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
            if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) {
            { textBox2.Text = folderBrowserDialog1.SelectedPath;
                textBox2.Text = folderBrowserDialog1.SelectedPath; }
            } }
        }
 private void button3_Click(object sender, EventArgs e)
        private void button3_Click(object sender, EventArgs e) {
        { if (folderBrowserDialog2.ShowDialog() == DialogResult.OK)
            if (folderBrowserDialog2.ShowDialog() == DialogResult.OK) {
            { textBox1.Text = folderBrowserDialog2.SelectedPath;
                textBox1.Text = folderBrowserDialog2.SelectedPath; }
            } }
        } private void tbDirectory()
        private void tbDirectory() {
        { label3.Text = "同步开始,请等待!";
            label3.Text = "同步开始,请等待!"; GetAllDirList(textBox2.Text);
            GetAllDirList(textBox2.Text); label3.Text = "完成!";
            label3.Text = "完成!"; }
        }
 public void GetAllDirList(string strBaseDir)
        public void GetAllDirList(string strBaseDir) {
        { DirectoryInfo di = new DirectoryInfo(strBaseDir);//获得目录信息
            DirectoryInfo di = new DirectoryInfo(strBaseDir);//获得目录信息 DirectoryInfo[] diA = di.GetDirectories();//获得该目录下的所有子目录
            DirectoryInfo[] diA = di.GetDirectories();//获得该目录下的所有子目录 FileInfo[] fiA = di.GetFiles();//获得该目录下的所有文件
            FileInfo[] fiA = di.GetFiles();//获得该目录下的所有文件 string targetDir = di.FullName.Replace(soureRoot, targetRoot) + "\\";
            string targetDir = di.FullName.Replace(soureRoot, targetRoot) + "\\"; for (int j = 0; j < fiA.Length; j++)
            for (int j = 0; j < fiA.Length; j++) {
            { label3.Text = "正在检查" + fiA[j].FullName;
                label3.Text = "正在检查" + fiA[j].FullName; if (!File.Exists(targetDir + fiA[j].Name))
                if (!File.Exists(targetDir + fiA[j].Name)) {
                { label3.Text = "正在更新" + targetDir + fiA[j].Name;
                    label3.Text = "正在更新" + targetDir + fiA[j].Name; fiA[j].CopyTo(targetDir + fiA[j].Name);
                    fiA[j].CopyTo(targetDir + fiA[j].Name); }
                } }
            } foreach (DirectoryInfo d in diA)
            foreach (DirectoryInfo d in diA) {
            { label3.Text = "正在检查" + d.FullName;
                label3.Text = "正在检查" + d.FullName; targetDir = d.FullName.Replace(soureRoot, targetRoot);
                targetDir = d.FullName.Replace(soureRoot, targetRoot); if (!Directory.Exists(targetDir))
                if (!Directory.Exists(targetDir)) {
                { label3.Text = "正在更新" + targetDir;
                    label3.Text = "正在更新" + targetDir; Directory.CreateDirectory(targetDir);
                    Directory.CreateDirectory(targetDir); }
                } }
            } //子目录递归
            //子目录递归 for (int i = 0; i < diA.Length; i++)
            for (int i = 0; i < diA.Length; i++) {
            { GetAllDirList(diA[i].FullName);
                GetAllDirList(diA[i].FullName); }
            } }
        }
 private void button4_Click(object sender, EventArgs e)
        private void button4_Click(object sender, EventArgs e) {
        { if (th != null)
            if (th != null) {
            { th.Abort();
                th.Abort(); label3.Text = "用户取消!";
                label3.Text = "用户取消!"; }
            } else
            else {
            { label3.Text = "同步还没有开始!";
                label3.Text = "同步还没有开始!"; }
            } }
        }
 }
    } }
} 
                    
                
 


 
     
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号