双机热备开发(二):文件定时同步功能

1,文件同步模块详解

2,文件同步功能主要是拿来对主机向备用机实时同步,使得两边的系统文件动态实时同步。

主要分为两种同步形式:第一种为定时同步;第二种为实时同步(也可以称为增量同步)。

3,第一种定时同步:主要运用多线程来对文件进行同步操作。主要运用方法如下:

/// <summary>
        /// 递归-拷贝文件夹及文件
        /// </summary>
        /// <param name="sourceDirectoryUrl">源路径</param>
        /// <param name="copyDirectoryUrl">复制路径</param>
        public void CopyDirectory(string sourceDirectoryUrl, string copyDirectoryUrl)
        {
            try
            {
                source = copyDirectoryUrl;


                string folderName = sourceDirectoryUrl.Substring(sourceDirectoryUrl.LastIndexOf("\\") + 1); //+"\\" + folderName

                string desfolderdir = copyDirectoryUrl ;

                if (copyDirectoryUrl.LastIndexOf("\\") == (copyDirectoryUrl.Length - 1))
                {
                    desfolderdir = copyDirectoryUrl + folderName;
                }

                string[] filenames = Directory.GetFileSystemEntries(sourceDirectoryUrl);

                foreach (string file in filenames)// 遍历所有的文件和目录
                {
                    if (Directory.Exists(file))// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
                    {

                        string currentdir =  desfolderdir + "\\" + file.Substring(file.LastIndexOf("\\") + 1);//"\\" +
                        if (!Directory.Exists(currentdir))
                        {
                            Directory.CreateDirectory(currentdir);
                        }

                        CopyDirectory(file, currentdir);
                    }
                    else // 否则直接copy文件
                    {
                        string srcfileName = file.Substring(file.LastIndexOf("\\") + 1);

                        srcfileName = desfolderdir + "\\" + srcfileName;//"\\"+

                        if (!Directory.Exists(desfolderdir))
                        {
                            Directory.CreateDirectory(desfolderdir);
                        }
                        
                        File.Copy(file, srcfileName, true);//本地的可以复制

                    }
                }

               
            }
            catch (Exception ex)
            {
                Log.Instance.WriteLog("错误日志", ex.Message + ex.StackTrace);
            }
            
        }

在自定义的多线程中使用如上方法的代码即可。需要注意的是跨服务器同步文件,目标文件得设置成共享文件的权限。本机则无需该权限。定时同步文件的功能就介绍到这啦!!!下一章节准备讲解下实时文件同步的功能实现。欢迎评论和留言交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不良人24k

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值