c# 关于根据文件修改日期来进行拷贝更新到其他位置的示例代码及思路

        本程序是不断判断当前文件夹中某指定文件的修改日期,如果修改日期更改或者变化
则会将文件拷贝到目标文件夹,示例代码只提供一个思路及想法。

 本文主要引用头文件

using System.IO;
using System.Configuration;

主要代码 

        本程序功能是将  某个文件如果修改时间有所变化,也就是说被修改过,则会从其路径地址,拷贝到其他路径地址的程序。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Threading;
using System.Xml.Linq;
using System.Configuration;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    internal class CopyFile
    {
        private Thread threadUpdate;
        public string localAddName;
        public string targetAddName;
        Configuration cfa;

        string FileName1 = "xxx工艺参数.accdb";
        string FileName2 = "xxxx工艺参数.accdb";
        string FileName3 = "xxxxx数据库备份.mdb";
        

        public CopyFile()
        {
            
        }
        public void initializer(string localAddress, string targetAddress)
        {
            //将传入得地址,作为全局变量
            localAddName = localAddress;
            targetAddName = targetAddress;
            //此处读取AppConfig文件的句柄
            cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

            //开启更新线程
            threadUpdate = new Thread(updata);
            threadUpdate.IsBackground = true;
            threadUpdate.Start();
        }

        /// <summary>
        /// 拷贝文件函数
        /// </summary>
        /// <param name="localAddress"></param>
        /// <param name="targetAddress"></param>
        public void CpoyFileFunc(string localAddress, string targetAddress)
        {
            try
            {
                File.Copy(localAddress, targetAddress, true); // 第三个参数表示如果目标文件已存在,则覆盖它  
            }
            catch (Exception ex)
            {
                //Console.WriteLine($"Error: {ex.Message}");
            }
        } 

        /// <summary>
        /// 更新文件线程
        /// </summary>
        public void updata()
        {
            while (true)
            {
                try
                {
                    // 获取文件的最后修改时间  
                    DateTime lastWriteTime1 = File.GetLastWriteTime(localAddName + @"\" + FileName1);
                    DateTime lastWriteTime2 = File.GetLastWriteTime(localAddName + @"\" + FileName2);
                    DateTime lastWriteTime3 = File.GetLastWriteTime(localAddName + @"\" + FileName3);
                    //判断当前文件修改时间是否和存在AppConfig里面的时间是否不同,如果不同则更新
                    if(lastWriteTime1.ToString() != ConfigurationManager.AppSettings["time1"])
                    {
                        CpoyFileFunc(localAddName+@"\" + FileName1, targetAddName+@"\"+ FileName1);
                        cfa.AppSettings.Settings["time1"].Value = lastWriteTime1.ToString();
                    }
                    if (lastWriteTime2.ToString() != ConfigurationManager.AppSettings["time2"])
                    {
                        CpoyFileFunc(localAddName + @"\" + FileName2, targetAddName + @"\" + FileName2);
                        cfa.AppSettings.Settings["time2"].Value = lastWriteTime2.ToString();
                    }
                    if (lastWriteTime3.ToString() != ConfigurationManager.AppSettings["time3"])
                    {
                        CpoyFileFunc(localAddName + @"\" + FileName3, targetAddName + @"\" + FileName3);
                        cfa.AppSettings.Settings["time3"].Value = lastWriteTime3.ToString();
                    }
                    //保存AppConfig内容
                    cfa.Save(ConfigurationSaveMode.Modified);
                    Thread.Sleep(12000);
                }
                catch (Exception)
                {
                }
            }
        }

        /// <summary>
        /// 中止线程函数
        /// </summary>
        public void StopThread()
        {
            threadUpdate.Interrupt();
            threadUpdate.Abort();
        }

    }
}

AppConfig内容

 此处为了记录程序中文件的上一次的修改时间,用以判断是否需要更新文件。

  <appSettings>
    <add key="time1" value="ldx"></add>
    <add key="time2" value="ldx"></add>
    <add key="time3" value="ldx"></add>
  </appSettings>

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值