• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > c#同步两个子目录文件示例分享 两个文件夹同步

c#同步两个子目录文件示例分享 两个文件夹同步

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#打开文件夹,c#创建文件夹,c#选择文件夹对话框,c#判断文件夹是否存在,c#打开文件夹对话框等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

namespace AutoSync
{
    enum SyncResult
    {
        Success,SourceDirNotExists,DestDirNotExists
    }
    class FloderSync
    {
        public int CreateDirCount = 0;
        public int CopyFileCount = 0;
        public List<string> Log = new List<string>();
        private void AddLog(string logtext)
        {
            if (Log.Count < 1000)
                Log.Add(System.DateTime.Now.ToString() + logtext);
            else if (Log.Count == 1000)
                Log.Add(System.DateTime.Now.ToString() + "  达到日志上限,不再追加");
        }
        public SyncResult StartSync(string sourcedir, string destdir)
        {
            //传入目录名保护
            sourcedir = sourcedir.Trim();
            destdir = destdir.Trim();
            //保证目录最后一个字符不是斜杠
            if (sourcedir[sourcedir.Length - 1] == '\\')
                sourcedir = sourcedir.Remove(sourcedir.Length - 1);
            if (destdir[destdir.Length - 1] == '\\')
                destdir = destdir.Remove(destdir.Length - 1);
            //判断目录是否存在
            if (!Directory.Exists(sourcedir)) return SyncResult.SourceDirNotExists;
            if (!Directory.Exists(destdir)) return SyncResult.DestDirNotExists;

            //获取源、目的目录内的目录信息
            Dictionary<string, string> SDirInfo = new Dictionary<string, string>();
            Dictionary<string, string> DDirInfo = new Dictionary<string, string>();
            Dictionary<string, string> aa = new Dictionary<string, string>();
            SDirInfo = NewDirectory.GetDirectories(sourcedir);//获取源目录的目录信息
            DDirInfo = NewDirectory.GetDirectories(destdir);//获取目标目录的目录信息
            //
            //      开始同步两个目录,但只先同步源目录信息
            //------比较两目录中的子目录信息---------------------
            foreach (KeyValuePair<string, string> kvp in SDirInfo) //在查找有无源目录存在而在目标目录中不存在的目录
            {
                if(!DDirInfo.ContainsKey(kvp.Key)) //如果目标目录中不存在目录,则马上建立
                {
                    string dirname=destdir + "\\" + kvp.Key;
                    Directory.CreateDirectory(dirname);
                    AddLog("  创建目录:" + dirname);

                    CreateDirCount++;
                }
                //递归调用目录同步函数,实现嵌套目录一次性全同步
                StartSync(sourcedir + "\\" + kvp.Key, destdir + "\\" + kvp.Key);
            }
            //取得源目录下所有文件的列表
            string[] SFiles = Directory.GetFiles(sourcedir);
            //string[] DFiles = Directory.GetFiles(destdir);
            //------比较两目录中的文件信息(本层目录)--------------
            foreach (string sfilename in SFiles)
            {
 &

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#遍历文件夹及其子目录的完整实现方法
  • C#简单遍历指定文件夹中所有文件的方法
  • C#实现获取文件夹大小的方法
  • C#文件流进行压缩和解压缩的方法
  • C#对文件/文件夹操作代码汇总
  • C#监控文件夹变化的方法
  • C#使用Word中的内置对话框实例
  • C#递归实现显示文件夹及所有文件并计算其大小的方法
  • C#获取文件夹及文件的大小与占用空间的方法
  • c#同步两个子目录文件示例分享 两个文件夹同步

相关文章

  • 2017-05-28浅析c#范型中的特殊关键字where & default
  • 2017-05-28C#利用System.Uri转URL为绝对地址的方法
  • 2017-05-28设计模式速记
  • 2017-05-28c#一个定时重启的小程序实现代码第1/2页
  • 2017-05-28C#截图程序类似腾讯QQ截图实现代码
  • 2017-05-28C# double和decimal数据类型以截断的方式保留指定的小数位数
  • 2017-05-28C#使用AutoResetEvent实现同步
  • 2017-05-28c#删除代码中的单行注释行示例
  • 2017-05-28c# 获取网页中指定的字符串信息的实例代码
  • 2017-05-28C#获取局域网MAC地址的简单实例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#自定义的字符串操作增强类实例
    • c#分页读取GB文本文件实例
    • C#实现带百分比的进度条功能示例
    • 浅析C# 基础语法的使用
    • C# 如何获取出错的错误所在行数信息 原创
    • DevExpress实现自定义GridControl中按钮文字内容的方法
    • 详解C#中 Thread,Task,Async/Await,IAsyncResult的那些事儿
    • C#的SQL操作类实例
    • HighCharts图表控件在ASP.NET WebForm中的使用总结(全)
    • c#使用资源文件的示例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有